CloudAMQP are managed RabbitMQ servers in the cloud – hosted message queues that lets you pass messages between processes and other systems. Messages are published to a queue by a producer, the consumers can then get the messages off the queue when the consumer wants to handle the messages. In-between, it can route, buffer, and persist the messages according to rules you give it.

Messages can be sent cross languages, platforms and OS, this way of handling messages decouple your processes and creates a highly scalable system.

CloudAMQP overview

RabbitMQ is a high performance message broker, built in Erlang, which implements the AMQP protocol. All AMQP client libraries work with CloudAMQP and there are AMQP client libraries for almost every platform out there, including: Ruby, Node.js, Java, Python, Clojure and Erlang.

Create a CloudAMQP instance

To get started you need to sign up for a customer plan. What plan you want to use depend of your needs. We offer seven different plans, both dedicated clusters, individual servers and vhosts on shared clusters.

You can try CloudAMQP for free with the plan Lemur.

The instance is immediately provisioned after sign up and you can view all your instances in the control panel.

The instance details, such as connection URL, server name and password can be seen at the details page. You can also go to the RabbitMQ management page from the detail page.

CloudAMQP offers various monitoring tools. These tools will address performance issues promptly and automatically, before they impact your business. Read more about the monitoring tools here.

customer.cloudamqp.com

Once you have created your account you can get started queuing and processing by using any of the guides listed, depending on platform and language. These tutorials cover the basics of creating messaging applications using CloudAMQP.

RabbitMQ Management Interface

The RabbitMQ dashboard allows you to show the current message rate, which queues and exchanges you have, and the bindings between them. You can also queue and pop messages manually, among other things.

RabbitMQ Dashboard

AMQP Concepts

AMQP has a bunch of concepts which can be good to be familiar to.

For a more complete guide to AMQP see RabbitMQ's concept guide.

Queue
A queue stores messages, for clients to retrieve. A queue is bound to one or more exchanges, optionally with a routing key. A queue may have one or many consumers.
Message
A message is what's transported between the publisher and the consumer, it's essentially a byte array with some headers on top.
Exchange
You push to an exchange, but an exchange can never store messages, nor can you retrieve messages from it. That's what queues are for.
Binding
AMQP allows you to very granularly route your messages between incoming exchanges and outgoing queues. A binding is what determents to which queues a message arriving to a exchange should be routed, it may be to zero or many. A binding depends on which kind of exchange the message was destined for and the "routing key".
The "default exchange"
The default exchange has no name, but there's a default binding which says that the message will arrive at a queue with the same name as the "routing key".
Routing key
As part of the header of every message there's a key called the "routing key" which can be used to route the message.

Exchange types

Exchanges take a message and route it into zero or more queues. The way the message is routed depends on the exchange type and rules called bindings.

Direct
A client sends a message to a queue for a particular recipient. The default exchange is a direct exchange with no name (empty string) pre-declared by the broker.
Fan-out
A fanout exchange copies the message and routes the message to all queues that are bound to it, the routing key is ignored.
Topic
A message is sent to a number of queues based on some rules.
Headers
Message headers are inspected and the message is routed based on those headers.

Local RabbitMQ workstation setup

RabbitMQ is easy to install locally for development.

If you have... Install with...
Mac OS X brew install rabbitmq
Windows The installer
Ubuntu Linux
sudo echo "deb http://www.rabbitmq.com/debian/ testing main" >> /etc/apt/sources.list
wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
sudo apt-key add rabbitmq-signing-key-public.asc
sudo apt-get update
sudo apt-get install rabbitmq-server
Other See RabbitMQ's installation page

Resources

There's a lot of good resources for RabbitMQ related stuff, here is a small collection:

Mass Transit logo

Example projects

We've provided a couple of example projects which you can fork or steal at will:

Support

Don't hesitate to contact us at support@cloudamqp.com if you got any questions!