How To
The links below highlight some of our favourite content on this site and the
web that will help you get started with messaging and RabbitMQ. If you are just starting out
with messaging and RabbitMQ, please take a look at our Get Started
tutorials. If you feel we have missed something or would like to suggest more links please
contact us.
Overviews and Introductions
-
Alexis' Introduction to RabbitMQ
Alexis' presentation at Thoughtworks 'London Geek Night', May 2009, where
he introduces RabbitMQ “An open source message broker that just works”.
-
RabbitMQ: Messaging in the Cloud
Matthew's presentation to VMworld 2010 that covers an introduction to messaging with common use cases, an
AMQP 101 and an overview of RabbitMQ including its features and application to cloud messaging.
-
RabbitMQ: Messaging that just works
A recording of Emile's webinar that introduces messaging and RabbitMQ. Some prominent features introduced in recent releases
are discussed and the webinar concludes with a Q&A session with members of the audience.
-
It's the message, stupid
A presentation by Muharem Hrnjadovic discussing why messaging is a good thing and when and how to use it. Muraham covers
an introduction to messaging concepts and how the AMQP model can be used to implement common messaging patterns. A
video is also available.
-
Introduction to AMQP and Messaging with RabbitMQ
Presentation by Dmitriy Samovskiy on slideshare.net. Good primer on
AMQP messaging concepts and RabbitMQ in general.
-
AMQP 0.9.1 Model Explained
Michael Klishin's Guide to using AMQP with RabbitMQ. Clear explanations of
messaging concepts and AMQP 0-9-1. Written for a Ruby audience,
but suitable for wider readership.
Progresses to discussion and examples of messaging patterns and error handling.
-
Multi-platform Messaging with RabbitMQ
Rob Harrop demonstrates how to use RabbitMQ from a variety of languages (Java,
Python, Ruby and Erlang) and different environments using AMQP and STOMP for
multi-platform communication.
-
The RabbitMQ Team's Introduction to RabbitMQ and AMQP
A video of the RabbitMQ team presenting their Tech Talks at Google London,
Oct 2008. Alexis explains what is meant by messaging and why you might need
a messaging broker. Matthias provides a technical overview of the RabbitMQ
broker and why Erlang was the right choice to implement it. Tony then
discusses the future of RabbitMQ and AMQP with a focus on messaging at
internet scale.
-
Why Rubyists Should Care About Messaging
A high level introduction into why you should be using messaging in your applications. Not just for Rubyists.
-
A Technical Look at RabbitMQ and Erlang
Matthias' slides from a talk at FITEclub in 2009 where he presents a technical overview of RabbitMQ
-
Getting Started with AMQP and RabbitMQ
Article on infoq.com by Joern Barthel that provides an excellent discussion
the AMQ model and its implementation in RabbitMQ. Lots of code examples
are provided in Ruby.
-
RabbitMQ: Python and Ruby Staring at the Looking Glass
A slide show from Paolo Negri that offers an excellent introduction to the AMQP
model and RabbitMQ with code samples in python and ruby. He explores the
different routing models available and goes on to explain a number of use cases
and some common messaging patterns, including pubsub.
-
The Attention Deficit Disorder Guide to RabbitMQ
Blog post for those who want to get started with RabbitMQ quickly and
easily. Assumes you know the basics about messaging and AMQP.
-
Installing RabbitMQ
Video showing how to get a RabbitMQ server installed and running in 20 seconds.
-
RabbitMQ and Messaging in General
Slides from a presentation by Lenz Gschwendtner at erlounge in
Wellington, July 2009. Another great introduction.
-
Rabbits and Warrens
Blog post. Provides and excellent introduction to messaging, RabbitMQ,
AMQP and using them with Python. Well worth a read for ophidians and
non-ophidians alike.
-
Wikipedia on AMQP
Read all about AMQP including the origins of the protocol, the AMQP model
and the other specifications that cover the same or similar space as AMQP.
-
Databases Suck for Messaging
Slides from presentation given by Alexis at Oxford Geek Night, May 2009.
Examination of why messaging architectures beat database polling for
pubsub.
-
What Problem Does Messaging Solve?
A Q&A discussion that covers a variety of use cases for messaging.
-
RabbitMQ Internal Architecture
Talk by Tony Garnock-Jones at Google London, May 2009. Explains the
internals of RabbitMQ and how RabbitMQ can be used in federation and
achieving redundancy for high availability.
-
Une Alternative à JMS?
An excellent introduction, in French, to messaging with AMQP. (Or read the
English translation,
which is almost as good.)
-
RabbitMQ on del.icio.us
We present a list of useful searches on the social bookmarking site.
Management and Monitoring
Management and monitoring capabilities are provided
by rabbitmqctl
and the management plugin.
In addition there are several community-maintained
tools. Please treat these as experimental and send feedback
to the
list.
Messaging Patterns and Common Scenarios
-
Enterprise Integration Patterns for RabbitMQ
A library of sample implementations of common messaging patterns described in the EIP book. See also
the accompanying video and slides.
The patterns currently implemented are:
-
Rabbit on a Leash - Rate Limited AMQP Subscriptions
Doug Barth describes how to implement rate controlled message processing using AMQP's prefetch_count, client acks and a blocking
token bucket.
-
RabbitMQ Web Chat Post Mortem
A write up of what happens when you build a web chat room with RabbitMQ and issue an open
invitation to break it.
-
Building a Real-time Feed with RabbitMQ, Node.js, AMQP and MySQL
A walk through of how to build a browser-based pubsub system.
-
An Army of Zombie Minions for RabbitMQ
Alvaro Videla showcases his RabbitMQ messaging patterns library by
creating "control enabled messaging endpoints". These are message consumers that dynamically alter their behaviour
in response to out-of-band control messages.
-
Eventing Data with RabbitMQ and Riak
John Brisbin, author of the Riak custom exchange type and
Riak postcommit hook for RabbitMQ, presents
some use cases for Riak and RabbitMQ.
-
Visualising data in real time using Drizzle and RabbitMQ
A demonstration of delivering real time data to the browser using Drizzle (a database forked from MySQL and optimised
for cloud and web applications), RabbitMQ and websockets.
-
Routing Topologies for Performance and Scalability
Designing a good routing topology for a highly-scalable system can be like mapping a graph. Helena Edelson explains the things you
need to consider such as the problem domain, the constraints of the environment, the messaging implementation and performance strategies.
-
On Rabbits and Elephants
Or how to use RabbitMQ to stream data events across PostgreSQL databases. The code is available on github.
-
Using RabbitMQ, Spring AMQP and Spring Integration
Shane Witbeck describes a proof of concept in which he demonstrates how these open source technologies combined
with proven enterprise integration patterns results in code that is easier to maintain, easier to test
and is faster than the legacy system it replaces.
-
High Availability AMQP Messaging With Redundant Queues
Introducing Beetle - a high availability messaging solution that uses a redundant configuration combined
with message deduplication to boost reliability.
-
Patterns for Messaging with RabbitMQ
Scott Brooks presents an overview of the AMQ model and goes on to describe some advanced topics. He highlights a set of common
messaging use cases with RabbitMQ including delayed job queues, event logging, back-end decoupling and cross platform interoperability.
-
RPC over RabbitMQ
Alvaro Videla discusses how to implement a request-response pattern using RabbitMQ and AMQP.
-
Multiprotocol Asynchronous Job Server
Tomas Doran builds an AMQP- and JSON-based job and event server with RabbitMQ (code available on github). The
presentation contains an excellent introduction to AMQP and examples of why you might need messaging in your application.
-
Interoperability with RabbitMQ
Alvaro Videla explains how RabbitMQ is the perfect solution to the interoperability problem where
different applications need to work together to share real time data at scale.
-
User Interaction with RabbitMQ using MagooClient
MagooClient - a SOA/MOM client aimed primarily at XML-based applications - now comes with a RabbitMQ transport. This allows MagooClient
to be plugged into a RabbitMQ architecture providing an instant user client for prototyping, testing or scenarios where direct user interaction with
exchanges is required. No coding necessary and topic/direct exchange models are fully supported.
-
Using RabbitMQ Beyond Queuing
Dmitriy Samovskiy blogs about how RabbitMQ can be used beyond simple
queuing and pubsub. Gets you started on the path to "achieve a distributed
messaging nirvana".
-
Advanced Messaging & Routing with AMQP
Ilya Grigorik explains how to get started with AMQP in Ruby and provides
some advanced AMQP recipes for a variety of messaging use cases.
-
Message Queues, Django and Celery QuickStart
Rich Leland's quick start guide provides a great explanation of how to set up an asynchronous task queue with
RabbitMQ, Celery and Python, all on a Mac.
-
Common Messaging Patterns (.NET Client Library User Guide)
Whether or not you use .NET, section 3 of this guide describes ways
of working with AMQP and a number common messaging patterns and
interaction styles.
-
Listening to the System
Blog post from Ben Hyde examining some ideas how topic routing in AMQP
is a good solution for building a message hub for real-time monitoring.
-
Integration with Graphite
Tools written in Python that facilitate sending data to Graphite via
RabbitMQ rather than connecting directly via TCP. Demonstrates how the
AMQP model decouples produces and consumers of data.
-
Drizzle replication using RabbitMQ
Marcus Eriksson has implemented a transaction log replicator for Drizzle using
RabbitMQ as the transport. (See also the
updated post and the follow up
Better replication from Drizzle to Cassandra.)
-
Messaging Patterns on del.icio.us
See more links to articles on messaging patterns at delicious.com.
Specific Use Cases and Examples
-
Building a Node.js Events Application using RabbitMQ
James Burkhart builds a scalable platform to orchestrate round-table events in which chat, tweets and other activities
are broadcast to thousands of participants in as close to real-time as possible.
-
Powerful, Open Source, VoIP Cloud Services
James Aimonetti describes a open-source product that automatically deploys, scales and distributes
VoIP calls across the Internet on commodity or virtualized servers. It fully utilizes Erlang for VoIP
logic and on other Erlang products like CouchDB and RabbitMQ.
-
How Digg is Built
Dave Beckett describes how Digg, a social news and content sharing website, rebuilt their infrastructure. Digg use RabbitMQ
to bridge their on-line applications and asynchround backend systems, queuing up events that have happened and jobs to perform.
-
RabbitMQ, node.js and Java
James Carr creates a sample application demonstrating how RabbitMQ and Spring-AMQP
can be used to connect a website written in node.js to established JEE infrastructure using an asynchronous, event-driven architecture.
-
Social Networks and the Richness of Data [PDF 9.2 MB]
An excellent presentation describing how scale social network activity streams with RabbitMQ, Redis and NoSQL in general.
-
Unibet [PDF 10.3 MB]
Stefan Norberg's presentation on use of RabbitMQ and Kaazing and Terracotta for European scale real time betting at Unibet.
-
NASA's NEBULA Cloud Computing Platform
Overview of how NASA are using RabbitMQ in their Nebula SaaS platform. Please also see
this interview with The Register and
these slides
from Chris C. Kemp, the CIO of NASA Ames Research Center, and the thought-leader behind the NEBULA project.
-
Application of RabbitMQ at the BBC
Video of a talk by Mike Bridgen at Google London, May 2009, where he
illustrates how RabbitMQ can be used within a real world application
integrating the news feeds at the BBC.
-
Untangling the BBC's data feeds
More on the use of RabbitMQ at the BBC on Mike Bridgen's blog.
-
Soocial.com run RabbitMQ on Amazon EC2
Soocial.com provide an address book and contact management solution
running on the Amazon Elastic Compute Cloud. They use RabbitMQ as their
message bus to move data between their service and mobile devices.
-
Use Cases on del.icio.us
See more links to articles on RabbitMQ use cases at delicious.com.
Blogs, Forums and Social
-
LShift's Blogs
Read the blogs of the developers behind RabbitMQ.
-
Ben's Blogs
Ben is a developer at LShift and is a contributor to the RabbitMQ project.
-
Dmitry's Blogs
Dmitry is the author of rabbitbal, a reverse proxy for Rails and other frameworks,
and blogs a lot about RabbitMQ.
-
Of Bunny and AMQP
The blog of Chris Duncan, author the the Bunny AMQP client for Ruby. Good place
to look if you're using AMQP with Ruby.
-
Daniel DeLeo's Blog: Kallistec
Daniel is the author of Qusion - "an AMQP made-easy" library for Ruby. He
regularly blogs on a variety of subjects including AMQP, RabbitMQ and Ruby.
-
Get the latest buzz about RabbitMQ on Addict-o-matic
General Posts
-
Wikipedia on RabbitMQ
Wikipedia's page on RabbitMQ.
-
Can AMQP break IBM's monopoly on middleware: Part 1,
Part 2,
Part 3
Three part series from Open Enterprise on messaging middleware and
AMQP. Includes an interview with RabbitMQ’s very own Alexis Richardson.
-
AMQP will play a crucial role in the future of complex event processing
Mark Palmer, CEO of StreamBase, predicts that interoperability between AMQP-enabled
systems - particularly RabbitMQ - will play a major role in the evolution of
innovative event-based processing stacks.
-
You Might Need Messaging If...
A short presentation from Bob Pasker on what messaging systems are for.
-
Toward a commodity enterprise middleware
Article in ACM Queue from June 2007 by John O'Hara, one of the orginal creators
of AMQP. John discusses the origins of AMQP, how it came to be, and how you
might go about integrating AMQP messaging with legacy middleware. The article entitled 'Toward a
Commodity Enterprise Middleware' begins on the 50th page of the PDF.
-
Advanced Message Queueing Protocol
Presentation from Pranta Das from Cisco giving a good background on AMQP, an
overview of the the new information model in AMQP 1.0 and some general use
cases for AMQP messaging.
-
Asynchronous Processing with Ruby on Rails
Jon Dahl's presentation at Rail Conf 2008 describes why asynchronous
processing is important and explains why messaging is useful here.
-
Henry Ford & Event Driven Architecture
Ilya Grigorik explains how to scale your application with events and
suggests that a little "AMQP kung fu" may help.
-
AMQP and Apache Qpid
Microsoft discuss the challenges of enterprise messaging in a
heterogeneous environment, and make a business case for AMQP, with
Qpid as the example broker
-
To AMQP or to XMPP, that is the question
Blog post by Kenneth Kalmer comparing AMQP and XMPP as messaging protocols.
-
A report of high performance tested by Intel in 2007
Report of load testing of RabbitMQ conducted with Intel and an
analysis by one of our team.