Exploring the Future Potential of AI-Enabled Smartphone Processors
Integrating RabbitMQ with PHP
1. Integrating
RabbitMQ with PHP
Álvaro Videla
June 2010 - IPC Spring Edition - Berlin
Wednesday, June 2, 2010
2. About Me
• Lead Developer at TheNetCircle.com
• Writing “RabbitMQ in Action” for Manning
• Twitter: @old_sound
• Blog: http://obvioushints.blogspot.com/
Wednesday, June 2, 2010
3. The
Interoperability
Problem
Wednesday, June 2, 2010
4. The Problem
Movie
Publisher
Wednesday, June 2, 2010
5. The Problem
Movie New
Movie
Publisher
Wednesday, June 2, 2010
6. The Problem
Java WebService
XML
Movie New
Movie
Publisher
Wednesday, June 2, 2010
7. The Problem
Java WebService
XML
C++ Image
Thumbnail
Generator
Movie New
Movie
Publisher
Wednesday, June 2, 2010
8. The Problem
Java WebService
XML
C++ Image
Thumbnail
Generator
Movie New
Movie
Publisher PHP PHP Cache
Generator
Wednesday, June 2, 2010
9. The Problem
Java WebService
XML
C++ Image
Thumbnail
Generator
Movie New
Movie
Publisher PHP PHP Cache
Generator
PHP Static
HTML
Publisher
Wednesday, June 2, 2010
10. The Problem
Java WebService
XML
C++ Image
Thumbnail
Generator
Movie New
Movie
Publisher PHP PHP Cache
Generator
PHP Static
HTML
Publisher
C++ Trailers
Generator
Wednesday, June 2, 2010
11. The Problem SYSTEMS
WebService
XML
Image
Thumbnail
Generator
PHP Cache
Generator
Static
HTML
Publisher
Trailers
Generator
Wednesday, June 2, 2010
12. The Problem SYSTEMS
WebService
XML
Written In Different Languages
Image
Thumbnail
Generator
PHP Cache
Generator
Static
HTML
Publisher
Trailers
Generator
Wednesday, June 2, 2010
13. The Problem SYSTEMS
WebService
XML
Written In Different Languages
Image
Different Operating Systems Thumbnail
Generator
PHP Cache
Generator
Static
HTML
Publisher
Trailers
Generator
Wednesday, June 2, 2010
14. The Problem SYSTEMS
WebService
XML
Written In Different Languages
Image
Different Operating Systems Thumbnail
Generator
Written By Different People PHP Cache
Generator
Static
HTML
Publisher
Trailers
Generator
Wednesday, June 2, 2010
15. The Problem SYSTEMS
WebService
XML
Written In Different Languages
Image
Different Operating Systems Thumbnail
Generator
Written By Different People PHP Cache
Generator
They Need To Share Information
Static
HTML
Publisher
Trailers
Generator
Wednesday, June 2, 2010
16. The Problem SYSTEMS
WebService
XML
Written In Different Languages
Image
Different Operating Systems Thumbnail
Generator
Written By Different People PHP Cache
Generator
They Need To Share Information
Static
They Need Real Time Data HTML
Publisher
Trailers
Generator
Wednesday, June 2, 2010
17. The Problem SYSTEMS
WebService
XML
Written In Different Languages
Image
Different Operating Systems Thumbnail
Generator
Written By Different People PHP Cache
Generator
They Need To Share Information
Static
They Need Real Time Data HTML
Publisher
They Need To Scale Trailers
Generator
Wednesday, June 2, 2010
31. Other Advantages
• Fire and Forget
• Stop/Start consumers safely (no need for
last processed id)
• No need for Cronjobs locks
• Load Distribution
• Transactions
Wednesday, June 2, 2010
33. RabbitMQ
• Enterprise Messaging System
• Open Source MPL
• Written in Erlang/OTP
• Commercial Support
Wednesday, June 2, 2010
34. Features
• Reliable and High Scalable
• Easy To install
• Easy To Cluster
• Runs on: Windows, Solaris, Linux, OSX
• AMQP 0.8
Wednesday, June 2, 2010
36. Docs/Support
• http://www.rabbitmq.com/documentation.html
• http://dev.rabbitmq.com/wiki/
• #rabbitmq at irc.freenode.net
• http://www.rabbitmq.com/email-archive.html
Wednesday, June 2, 2010
37. Our Setup:
Publishers - 28 PHP Frontend Machines
2 PHP Machines
running 24 consumers each
Wednesday, June 2, 2010
38. Our Setup
• Deployed in mid 2009
• Reduced site SPOF
• 500.000+ messages routed a day (and
increasing)
• Very easy to install/deploy
Wednesday, June 2, 2010