RabbitMQ

 

1Introduction

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.

1.1Document 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

1.2Intended Audience

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

2RabbitMQ Template

KEMP has developed a template containing our recommended settings for RabbitMQ. You can install this template on the LoadMaster and use it when creating Virtual Services. Using a template automatically populates the settings in the Virtual Services, which is quicker and easier than manually configuring each Virtual Service. If needed, you can make changes to any of the Virtual Service settings after using the template.

Download released templates from the Templates section on the KEMP documentation page: http://kemptechnologies.com/documentation/.

For more information and steps on how to import and use templates, refer to the Virtual Services and Templates, Feature Description.

For steps on how to manually add and configure each of the Virtual Services, refer to Section 4. of this document.

3Architecture

Figure 3‑1: Example Setup

4Service Configuration

4.1Enable 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.

When Subnet Originating Requests is enabled, the LoadMaster routes traffic so that the Real Server sees traffic arriving from the LoadMaster interface that is in that network/subnet.

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 select 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 WUI, go to System Configuration > Miscellaneous Options > Network Options.

Figure 4‑1: Subnet Originating Requests

  1. Select the Subnet Originating Requests check box.

4.2Configuring 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.

Figure 4‑2: Virtual Service Parameters

  1. Enter a valid Virtual Address.
  2. Type 5672 as the Port.
  3. Type a recognizable Service Name such as RabbitMQ.
  4. Click Add this Virtual Service.
  5. 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

Table 2‑1: RabbitMQ Recommended Settings

  1. 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

Document History

Date

Change

Reason for Change

Version

Resp.

Sept 2016

Initial release

First release of document

1.0

POC

Was this article helpful?

0 out of 0 found this helpful

Comments