CF Camp Notes: Multiply Like Rabbits
October 21, 2014
Multiply Like Rabbits - Asychronous Processing with ColdFusion and RabbitMQ
Markus Schneebeli
What is a Message Queue?
order a burger at McDonalds
to get a burger you need a cook
burger goes into the out-tray
to be given to the customer
producer -- cook
queue -- out tray
consumer -- the customer
can produce and send to multiple consumers
"exchange" -- the logic of the message queue
maybe the cook has to pick 1 of several trays to put the burger on
Rabbit MQ is a "Message Queue" product
Competitors --
ZeroMQ
ActiveMQ
-- largest # of installations, Apache product, can also store message via JDMC
ApolloMQ
latest release from Apache, different architecture, supports REST and JSON
HornetQ
jBoss implementation of Message Queue, supports JMS standards
just pick the one that matches your requirements
RabbitMQ
talks to any language - java, c++, node.js, .net, python, ruby, etc.
easily configurable
fast
multiple protocols
benefits --
really nice Management UI
open source
plugin system for creating your own logic
active community
the big players w/ RabbitMQ
Facebook - ajax loading system which goes thru message queue for the different "sections" of your FB page
WhatsApp
50 billion messages / day
almost 600,000 messages / second
(if you put that directly into a database, it'd surely blow up.)
2.8 million concurrent connections on the server
Google Suggestions
all the key typing isn't done by a "real request"
it's put into a message queue, and if possible, you get a request back via Message Queue (in milliseconds)
Markus Schneebeli
What is a Message Queue?
order a burger at McDonalds
to get a burger you need a cook
burger goes into the out-tray
to be given to the customer
producer -- cook
queue -- out tray
consumer -- the customer
can produce and send to multiple consumers
"exchange" -- the logic of the message queue
maybe the cook has to pick 1 of several trays to put the burger on
Rabbit MQ is a "Message Queue" product
Competitors --
ZeroMQ
ActiveMQ
-- largest # of installations, Apache product, can also store message via JDMC
ApolloMQ
latest release from Apache, different architecture, supports REST and JSON
HornetQ
jBoss implementation of Message Queue, supports JMS standards
just pick the one that matches your requirements
RabbitMQ
talks to any language - java, c++, node.js, .net, python, ruby, etc.
easily configurable
fast
multiple protocols
benefits --
really nice Management UI
open source
plugin system for creating your own logic
active community
the big players w/ RabbitMQ
Facebook - ajax loading system which goes thru message queue for the different "sections" of your FB page
50 billion messages / day
almost 600,000 messages / second
(if you put that directly into a database, it'd surely blow up.)
2.8 million concurrent connections on the server
Google Suggestions
all the key typing isn't done by a "real request"
it's put into a message queue, and if possible, you get a request back via Message Queue (in milliseconds)