RabbitMQ is an open source application that enables robust messaging for applications. It implements the Advanced Message Queuing Protocol (AMQP), the emerging standard for high performance enterprise messaging. The RabbitMQ server is a robust and scalable implementation of an AMQP broker.
The Kemp LoadMaster is used to load balance the RabbitMQ workload. The LoadMaster offers advanced Layer 4 and Layer 7 server load balancing, SSL Acceleration and a multitude of other advanced Application Delivery Controller (ADC) features. The LoadMaster intelligently and efficiently distributes user traffic among the application servers so that users get the best experience possible. Note that the Kemp template supports up to version 3.6 of RabbitMQ.
This document provides the recommended LoadMaster settings used when load balancing the RabbitMQ workload. The Kemp Support Team is available to provide solutions for scenarios not explicitly defined. The Kemp support site can be found at:
This document is intended to be read by anyone who is interested in configuring the LoadMaster to optimize RabbitMQ Application Server.
Kemp has developed a template containing our recommended settings for this workload. You can install this template to help create Virtual Services (VSs) because it automatically populates the settings. You can use the template to easily create the required VSs with the recommended settings. For some workloads, additional manual steps may be required such as assigning a certificate or applying port following, these steps are covered in the document, if needed.
You can remove templates after use and this will not affect deployed services. If needed, you can make changes to any of the VS settings after using the template.
Download released templates from the following page: LoadMaster Templates.
For more information and steps on how to import and use templates, refer to the Virtual Services and Templates, Feature Description on the Kemp Documentation page.
It is best practice to enable the Subnet Originating Requests option globally.
In a one-armed setup (where the Virtual Service and Real Servers are on the same network/subnet) Subnet Originating Requests is usually not needed. However, enabling Subnet Originating Requests should not affect the routing in a one-armed setup.
In a two-armed setup where the Virtual Service is on network/subnet A, for example, and the Real Servers are on network B, Subnet Originating Requests should be enabled on LoadMasters with firmware version 7.1-16 and above.
When Subnet Originating Requests is enabled, the Real Server sees traffic originating from 10.20.20.21 (LoadMaster eth1 address) and responds correctly in most scenarios.
With Subnet Originating Requests disabled, the Real Server sees traffic originating from 10.0.0.15 (LoadMaster Virtual Service address on eth0) and responds to eth0 which could cause asymmetric routing.
When Subnet Originating Requests is enabled globally, it is automatically enabled on all Virtual Services. If the Subnet Originating Requests option is disabled globally, you can choose whether to enable Subnet Originating Requests on a per-Virtual Service basis.
To enable Subnet Originating Requests globally, follow the steps below:
1. In the main menu of the LoadMaster User Interface (UI), go to System Configuration > Miscellaneous Options > Network Options.
2. Select the Subnet Originating Requests check box.
To configure the Virtual Service on the LoadMaster, follow the steps below in the WUI:
1. In the main menu, select Virtual Services > Add New.
2. Enter a valid Virtual Address.
3. Type 5672 as the Port.
4. Type a recognizable Service Name such as RabbitMQ.
5. Click Add this Virtual Service.
6. Configure the settings as recommended in the following table:
Source IP Address
Click Set Check Port
7. Add the Real Servers:
a) Expand the Real Servers section.
b) Click Add New.
c) Enter the address of the relevant Real Server.
d) Complete the other fields as required.
e) Click Add this Real Server then click OK to the pop-up message.
f) Repeat the steps above to add more Real Servers as needed, based on your environment.
This document was last updated on 01 February 2022.