We launched RabbitMQ, an Enterprise Messaging system, as our latest offering. There is more to a healthy cloud production environment than a well-maintained database management system. We want to get you going on RabbitMQ as quickly as possible.
We outlined the foundation of RabbitMQ: Messaging (or, "Enterprise Messaging") for application communication, the message protocol AMQP (Advance Message Queuing Protocol), and the underlying message broker - the RabbitMQ. Whether you already know how you'd like to apply RabbitMQ to your environment or are still searching for inspiration, let's take a look how you can use RabbitMQ within Compose.
Creating Your First Deployment
If you'd like to use RabbitMQ to help your applications and services communicate, a Compose deployment is a great way to start. If you have a Compose account, you can now spin up a deployment. To create your deployment, login to your dashboard and click the 'Create Deployment' button in the top right corner. Don't have an account? Now would be a good time to create your Compose account - you can select RabbitMQ as your initial deployment.
If you're familiar with our deployments and want to work through a basic RabbitMQ messaging example, check out the RabbitMQ Playground.
Once you've arrived at our deployment screen, under 'Beta Deployments' you'll find RabbitMQ alongside etcd. After you've selected your deployment, you can provide a name for the cluster and select a location. Presently, we offer:
- Amazon US East 1 (North Virginia)
- Amazon EU West 1 (Ireland)
Click 'Create Deployment' and witness the construction of your new RabbitMQ cluster.
The first view you'll see is the 'Overview'. Essential cluster and connectivity information can be found here.
You're provided with two connection strings, pointing to our haproxy instances at the forefront of your cluster. Underneath this is the link to the RabbitMQ Web UI which we'll dive into a bit later. The SSH public key can be revealed here, for enabling secure access into your deployment.
Topology will show you each entity within your cluster: your haproxies and then each RabbitMQ member. The publicly accessible hostname will be associated with your proxies. Beneath this, you'll find billing options. In an entry-level cluster, you're allocated 1GB of disk and 256MB of RAM. When the time comes to scale, you'll receive 256MB of additional capacity. If you have an uncommon case of needing to pre-emptively scale your deployment up, you can trigger a 2x, 3x or 4x increase immediately.
Browser & User Creation
Whether you're visiting the Web UI or connecting to the application, you'll need to have a 'User' set-up. Click 'Browser'. You'll see a vhost with the same name you provided when you created your cluster. You're free to add more or rename them. Clicking into them will allow you to add users to the vhost.
RabbitMQ requires you to use regular expressions to specify permissions over three different operations: configure, write and read. Configure allows a user to create, modify, and delete resources. Write operations allow messages to be injected into a specific resource, with Read allowing the retrieval of messages. Our example above demonstrates how to add "full" access by entering
.* for each operation.
Wrapping your head around RabbitMQ access control can seem complicated at first - we'd recommend reading the official RabbitMQ access control documentation.
Now that you have a user configured you can now access the administrative UI using the username and password you've just created. The RabbitMQ administrative panel is the gateway for information and connectivity. You can find the URL for the administrative UI in the overview.
Login with our newly created user - welcome to RabbitMQ!
Now that you have access to RabbitMQ and the features it provides, let's take a look at the features that come along with each Compose deployment.
Automatic backups take place daily. We will retain 14 backups at a time: 7 daily backups, 4 weekly, and 3 monthly. You can invoke up to 10 'on demand' backups per week by clicking the 'Back up now' button. A backup will not affect performance and can be downloaded at any time by clicking the green download icon.
If your deployment is out of date, you can upgrade your deployment to a more recent version at the click of a button. We let you decide when you'd like to upgrade your deployments. If you ever need to decommission your deployment, it can be done here - be sure to secure your backups!
A graph for every cluster member. Your initial RabbitMQ cluster will contain 3 members, giving you 3 graphs. Each graph shows 2 values as indicated on the legend. The first, in blue, is 'Memory Usage' and it is inclusive of both system and heap memory. The second, Memory Fail Counts, will indicate how many times - if any - that you are hitting your resource limit.
Each day, you'll receive one back-up per member. You can download and examine each log by clicking on the blue download link. Backups are compressed and stored on Amazon s3 and last for 7 days.
We provide access to "access portals", which always connect clients to the current master node within your deployment list. IP Address whitelisting will allow you to add your application or development hosts as trusted contacts for your cluster. The security tab will provide a list of IP addresses that you have permitted. To add a new trusted connection, click 'Add IP'.
RabbitMQ specializes in governing asynchronous wire protocol connections between applications. We'd love to hear the unique ways that our community is applying RabbitMQ.
In the next several days, we'll be releasing a technical deep dive into RabbitMQ. You'll hear about ExampleCo and how they've applied RabbitMQ to de-couple, then thread their scaled-up production cluster together into an efficient back-end.
Have fun exploring RabbitMQ!