RabbitMQ - FMDevelopers

RabbitMQ: Messaging
By Dave Gorman
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
Why Messaging
◦ Out of process and durable
◦ Accessible by many technologies
◦ Good visibility to processing bottlenecks
 select count(*) from messages
◦ Not designed for FIFO processing, slower
◦ Need to poll a table to say “any records yet”
◦ Have to make sure only one message per
Using DBs for Messaging
MSMQ only for windows
JMS only for java
3rd party enterprise messaging $$$
Messaging Frustration
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 (99.9999999%)
 Written to scale out
Supported Clients:
Supported Server Platforms:
◦ .Net, Java, Ruby, Python, PHP, Perl, JS…
◦ Windows, Linux (including EC2), Mac OS X
RabbitMQ and AMQP
<demo basic>
RabbitMQ Styles
<demo with c# and java>
Example 2
RabbitMQ Arch
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
About RabbitMQ
Dave Gorman
[email protected]

similar documents