Load Balancing MQTT Connections
Information
Summary: |
The Message Queuing Telemetry Transport Protocol (MQTT) is a lightweight open messaging protocol that provides low-bandwidth clients with a simple way to distribute telemetry information. The protocol employs a publish/subscribe communication pattern, which can be load balanced on the LoadMaster to multiple MQTT Broker servers/publishers. |
Environment: |
Product: Any Version: Any Platform: Any Application: MQTT Applications |
Question/Problem Description: |
How to configure a Virtual Service on the LoadMaster for load balancing MQTT Connections. |
Steps to Reproduce: | |
Error Message: | |
Defect Number: | |
Enhancement Number: | |
Cause: | |
Resolution: |
The standard TCP ports required are port 1883 for non-encrypted communication and port 8883 for encrypted communication, which leverages Secure Sockets Layer (SSL)/Transport Layer Security (TLS). It would be recommended to consult the MQTT application vendor for clarity on port configurations and SSL/TLS compatibility before continuing. Here are the steps involved for creating a non-encrypted Virtual Service over TCP port 1883, with the real servers also listening on TCP port 1883 on the LoadMaster:
For creating an SSL/TLS pass-through encrypted Virtual Service, repeat the steps above but instead use TCP port 8883 on the Virtual Service and on the real servers. |
Workaround: | |
Notes: |
More Information on the MQTT Protocol: Creating a Virtual Service on LoadMaster: https://support.kemptechnologies.com/hc/en-us/articles/6600361127693-Virtual-Services-and-Templates |