RabbitMQ: Messaging Awesomeness By Dave Gorman
Why Messaging Easier scaling to cloud ◦Subscribers to queue can be on different servers; decoupling application into processing units ◦Some messages will need more processing power than other messages ◦Volume of some messages will be much different (1000 decrement balance messages, 2 change of address messages) When designed for messaging: ◦Faster processing ◦Easier to code and test
Using DBs for Messaging Pros ◦Out of process and durable ◦Accessible by many technologies ◦Good visibility to processing bottlenecks select count(*) from messages Cons ◦Not designed for FIFO processing, slower ◦Need to poll a table to say “any records yet” ◦Have to make sure only one message per subscriber
Messaging Frustration MSMQ only for windows JMS only for java 3 rd party enterprise messaging $$$
RabbitMQ and AMQP Designed to interoperate with other messaging systems ◦Leading impl of Advanced Message Queuing Protocol ◦AMQP standards body with companies like: JPMorgan Cisco Goldman Sachs Proven Platform ◦Written on top of Erlang’s OTP (Open Telecom Platform) Used in telecom for many years to insure uptime Rated at nine nines ( %) Written to scale out Supported Clients: ◦.Net, Java, Ruby, Python, PHP, Perl, JS… Supported Server Platforms: ◦Windows, Linux (including EC2), Mac OS X
Example
RabbitMQ Styles
Example 2
RabbitMQ Arch
About RabbitMQ 100% Open Source ◦Not a couple dudes in their garage open source.. Owned by Spring Source and VMWare Commercial Services available Current version is 2.1 (9/25/2010) and releasing often Thriving community
Questions? Dave Gorman