RabbitMQ

2 Introduction

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.

2.1 Document Purpose

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: https://support.kemptechnologies.com

2.2 Intended Audience

This document is intended to be read by anyone who is interested in configuring the LoadMaster to optimize RabbitMQ Application Server.

3 Template

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. 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 Templates section on the Kemp Documentation Page.

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.

4 Architecture

Architecture.png

5 Service Configuration

5.1 Enable Subnet Originating Requests Globally

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.

Because this application can run at Layer 4, transparency is enforced. Transparency takes a higher priority than Subnet Originating Requests. Therefore, if transparency is enabled on the Virtual Service and Subnet Originating Requests is enabled globally, the Virtual Service still uses transparency. The Real Server sees traffic from this virtual service originating with the client’s source IP address (transparency). See the Transparency document on the Kemp documentation page for more details.

081.png

 

In the diagram above, you can see the following details:

  • Client: 10.0.0.100/24
  • Virtual Service on eth0: 10.0.0.15/24
  • Real Server on eth1: 10.20.20.25/24

With Subnet Originating Requests enabled, the Real Server sees traffic originating from 10.20.20.21 (LoadMaster eth1 address) and responds correctly.

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 causing 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 or not 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 Web User Interface (WUI), go to System Configuration > Miscellaneous Options > Network Options.

2. Select the Subnet Originating Requests check box.

5.2 Configuring the RabbitMQ Virtual Service

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.

Configuring the RabbitMQ Virtual.png

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:

Section Option Value Comment
Standard Options

Force L7

Disabled

 

 

Persistence Mode

Source IP Address

 

 

Timeout

10 minutes

 

 

Scheduling Method

least connection

 

Real Servers

Checked Port

5672

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.

References

Unless otherwise specified, the following documents can be found at http://kemptechnologies.com/documentation.

Virtual Services and Templates, Feature Description

Last Updated Date

This document was last updated on 30 January 2019.

Was this article helpful?

0 out of 0 found this helpful

Comments