ADC
Danke für das Feedback

Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)

MQTT Load Balancing

Der Message Queuing Telemetry Transport (MQTT) ist ein OASIS-Standard-Messaging-Protokoll für das Internet der Dinge (IoT). MQTT ist eine flexible und einfach zu bedienende Technologie, die eine effektive Kommunikation innerhalb eines IoT-Systems ermöglicht. MQTT ist ein Broker-basiertes Protokoll und wird häufig verwendet, um den Austausch von Nachrichten zwischen Kunden und Brokern zu erleichtern.

Die folgenden Hauptvorteile von MQTT machen es zu einer geeigneten Option für Ihr IoT-Gerät:

  • Zuverlässigkeit
  • Schnelle Reaktionszeit
  • Möglichkeit zur Unterstützung einer unbegrenzten Anzahl von Geräten
  • Veröffentlichen/Abonnieren von Nachrichten, die perfekt für Viele-zu-Viele-Kommunikation geeignet sind

IoT ist das Netzwerk von miteinander verbundenen Geräten, die in Sensoren, Software, Netzwerkkonnektivität und notwendige Elektronik eingebettet sind. Die eingebetteten Komponenten ermöglichen es IoT-Geräten, Daten zu sammeln und auszutauschen. Die zunehmende Nutzung von IoT-Geräten bringt die Netzwerkinfrastruktur mit sich aus, wobei Scale die herausragende darstellt. Bei einer großen Bereitstellung von IoT-Geräten müssen die von jedem IoT-Gerät generierten Daten schnell analysiert werden. Um die Skalierungsanforderungen und die effiziente Nutzung der Ressourcen zu erfüllen, muss die Belastung des Brokerpools gleichmäßig verteilt werden. Mit Unterstützung des MQTT-Protokolls können Sie die Citrix ADC Appliance in IoT-Bereitstellungen verwenden, um den MQTT-Datenverkehr auszugleichen.

Die folgende Abbildung zeigt die MQTT-Architektur, die eine Citrix ADC Appliance verwendet, um den Lastausgleich des MQTT-Datenverkehrs zu verwenden.

MQTT-System

Eine IoT-Bereitstellung mit MQTT-Protokoll besteht aus folgenden Komponenten:

  • MQTT-Broker. Ein Server, der alle Nachrichten von den Clients empfängt und die Nachrichten dann an die entsprechenden Zielclients weiterleitet. Der Broker ist dafür verantwortlich, alle Nachrichten zu empfangen, die Nachrichten zu filtern, zu bestimmen, wer jede Nachricht abonniert hat, und das Senden der Nachricht an diese abonnierten Clients. Der Broker ist der zentrale Knotenpunkt, durch den jede Nachricht hinausgehen muss.
  • MQTT-Client. Jedes Gerät, von einem Mikrocontroller bis zu einem vollwertigen Server, der eine MQTT-Bibliothek betreibt und über ein Netzwerk mit einem MQTT-Broker verbunden ist. Sowohl Publisher als auch Abonnenten sind MQTT-Kunden. Die Verlags- und Abonnentenlabels beziehen sich darauf, ob der Kunde Nachrichten veröffentlicht oder Nachrichten abonniert hat.
  • MQTT Load Balancer Die Citrix ADC Appliance ist mit einem virtuellen MQTT-Lastausgleichsserver konfiguriert, um den Lastausgleich des MQTT-Datenverkehrs zu erstellen.

In einer typischen IoT-Bereitstellung verwaltet der Broker (Servercluster) die Gruppe der IoT-Geräte (IoT-Clients). Die Last der Citrix ADC Appliance gleicht den MQTT-Verkehr an die Broker basierend auf verschiedenen Parametern wie Client-ID, Thema und Benutzername aus.

Konfigurieren des Load Balancing für MQTT-Datenverkehr

Damit die Citrix ADC Appliance den Lastausgleich von MQTT-Datenverkehr ermöglicht, führen Sie die folgenden Konfigurationsaufgaben aus:

  1. Konfigurieren Sie die Dienste oder Dienstgruppen von MQTT/MQTT_TLS.
  2. Konfigurieren Sie den virtuellen Lastenausgleichsserver MQTT/MQTT_TLS.
  3. Binden Sie die MQTT/MQTT_TLS-Dienste an den virtuellen Server des Lastenausgleichs MQTT/MQTT_TLS.
  4. Konfigurieren Sie den virtuellen MQTT/MQTT_TLS-Content Switching-Server.
  5. Konfigurieren einer Content Switching-Aktion, die den virtuellen Ziel-Lastausgleichsserver angibt
  6. Konfigurieren Sie eine Content Switching-Richtlinie.
  7. Binden Sie die Content Switching-Richtlinie an einen virtuellen Content Switching-Server, der bereits für die Umleitung auf den spezifischen virtuellen Lastausgleichsserver konfiguriert ist.
  8. Speichern Sie die Konfiguration.

So konfigurieren Sie den Lastenausgleich für MQTT-Datenverkehr mit der CLI

Konfigurieren Sie die Dienste oder Dienstgruppen von MQTT/MQTT_TLS.

add service <name> <IP> <protocol> <port> add servicegroup <ServiceGroupName> <Protocol> bind servicegroup <serviceGroupName> <IP> <port>

Beispiel:

add service srvc1 10.106.163.3 MQTT 1883 add servicegroup srvcg1 MQTT bind servicegroup srvcg1 10.106.163.3 1883

Konfigurieren Sie den virtuellen Lastenausgleichsserver MQTT/MQTT_TLS.

add lb vserver <name> <protocol> <IPAddress> <port>

Beispiel:

add lb vserver lb1 MQTT 10.106.163.9 1883

Binden Sie die Dienste oder Dienstgruppen von MQTT/MQTT_TLS an den virtuellen MQTT-Lastausgleichserver.

bind lb vserver <name> <serviceName> bind lb vserver <name> <servicegroupName>

Beispiel:

bind lb vserver lb1 srvc1 bind lb vserver lb1 srvcg1

Konfigurieren Sie den virtuellen MQTT/MQTT_TLS-Content Switching-Server.

add cs vserver <name> <protocol> <IPAddress> <port>

Beispiel:

add cs vserver cs1 MQTT 10.106.163.13 1883

Konfigurieren Sie eine Content Switching-Aktion, die den virtuellen Ziel-Lastausgleichsserver angibt

add cs action <name> -targetLBVserver <string> [-comment <string>]

Beispiel:

add cs action act1 -targetlbvserver lbv1

Konfigurieren Sie eine Content Switching-Richtlinie.

add cs policy <policyName> [-url <string> | -rule <expression>] –action <actName>

Beispiel:

add cs policy cspol1 -rule “MQTT.COMMAND.EQ(CONNECT) && MQTT.CONNECT.FLAGS.QOS.eq(2)-action act1

Binden Sie die Content Switching-Richtlinie an einen virtuellen Content Switching-Server, der bereits für die Umleitung auf den spezifischen virtuellen Lastausgleichsserver konfiguriert ist.

bind cs vserver <virtualServerName> -policyName <policyName> -priority <positiveInteger>

Beispiel:

bind cs vserver cs1 –policyName cspol1 -priority 20

Speichern Sie die Konfiguration.

save ns config

So konfigurieren Sie Load Balancing für MQTT-Datenverkehr mit der GUI

  1. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server, und erstellen Sie einen virtuellen Lastausgleichsserver vom Typ MQTT oder MQTT_TLS.
  2. Erstellen Sie einen Dienst oder eine Dienstgruppe vom Typ MQTT.
  3. Binden Sie den Dienst an den virtuellen MQTT-Server.
  4. Klicken Sie auf Speichern.

MQTT-Nachrichtenlängenbegrenzung

Die Citrix ADC Appliance behandelt die Nachrichten mit einer Nachrichtenlänge von mehr als 65536 Byte als Jumbo-Pakete und verwirft sie standardmäßig. Der dropmqttjumbomessage lb-Parameter entscheidet, ob die Jumbo-Pakete verarbeitet werden oder nicht. Dieser Parameter ist standardmäßig auf YESgesetzt, was bedeutet, dass die Jumbo-MQTT-Pakete standardmäßig verworfen werden. Wenn dieser Parameter auf NOgesetzt ist, verarbeitet die ADC-Appliance selbst die Pakete mit einer Nachrichtenlänge von mehr als 65536 Bytes.

So konfigurieren Sie die ADC-Appliance für die Verarbeitung von Jumbo-Paketen mit CLI:

Set lb parameter –dropMqttJumboMessage [YES | NO]

Beispiel:

set lb parameter –dropMqttJumboMessage no
Die offizielle Version dieses Inhalts ist auf Englisch. Für den einfachen Einstieg wird Teil des Inhalts der Cloud Software Group Dokumentation maschinell übersetzt. Cloud Software Group hat keine Kontrolle über maschinell übersetzte Inhalte, die Fehler, Ungenauigkeiten oder eine ungeeignete Sprache enthalten können. Es wird keine Garantie, weder ausdrücklich noch stillschweigend, für die Genauigkeit, Zuverlässigkeit, Eignung oder Richtigkeit von Übersetzungen aus dem englischen Original in eine andere Sprache oder für die Konformität Ihres Cloud Software Group Produkts oder Ihres Diensts mit maschinell übersetzten Inhalten gegeben, und jegliche Garantie, die im Rahmen der anwendbaren Endbenutzer-Lizenzvereinbarung oder der Vertragsbedingungen oder einer anderen Vereinbarung mit Cloud Software Group gegeben wird, dass das Produkt oder den Dienst mit der Dokumentation übereinstimmt, gilt nicht in dem Umfang, in dem diese Dokumentation maschinell übersetzt wurde. Cloud Software Group kann nicht für Schäden oder Probleme verantwortlich gemacht werden, die durch die Verwendung maschinell übersetzter Inhalte entstehen können.
MQTT Load Balancing