ADC
Danke für das Feedback

Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)

MQTT-Lastausgleich

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 auf Brokern basierendes Protokoll und wird häufig verwendet, um den Nachrichtenaustausch zwischen Kunden und Broker zu erleichtern.

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

  • Zuverlässigkeit
  • Schnelle Reaktionszeit
  • Fähigkeit, eine unbegrenzte Anzahl von Geräten zu unterstützen
  • Veröffentlichen und abonnieren Sie Nachrichten, die sich perfekt für die Kommunikation von vielen zu vielen eignen

IoT ist das Netzwerk miteinander verbundener Geräte, die mit Sensoren, Software, Netzwerkkonnektivität und der erforderlichen Elektronik ausgestattet sind. Die eingebetteten Komponenten ermöglichen es IoT-Geräten, Daten zu sammeln und auszutauschen. Die zunehmende Nutzung von IoT-Geräten bringt mehrere Herausforderungen für die Netzwerkinfrastruktur mit sich, wobei Skalierung die wichtigste ist. Bei einem groß angelegten Einsatz 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 NetScaler Appliance in IoT-Bereitstellungen verwenden, um den MQTT-Datenverkehr auszugleichen.

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

MQTT-System

Eine IoT-Bereitstellung mit dem MQTT-Protokoll besteht aus den 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, festzustellen, wer jede Nachricht abonniert hat, und die Nachricht an diese abonnierten Clients zu senden. Der Broker ist der zentrale Knotenpunkt, über den jede Nachricht weitergeleitet werden muss.
  • MQTT-Client. Jedes Gerät, von einem Mikrocontroller bis hin zu einem vollwertigen Server, auf dem eine MQTT-Bibliothek ausgeführt wird und über ein Netzwerk mit einem MQTT-Broker verbunden ist. Sowohl Herausgeber als auch Abonnenten sind MQTT-Kunden. Die Labels Herausgeber und Abonnenten geben an, ob der Kunde Nachrichten veröffentlicht oder den Empfang von Nachrichten abonniert hat.
  • MQTT-Loadbalancer. Die NetScaler 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 NetScaler Appliance gleicht den MQTT-Verkehr an die Broker basierend auf verschiedenen Parametern wie Client-ID, Thema und Benutzername aus.

Load Balancing für MQTT-Traffic konfigurieren

Führen Sie die folgenden Konfigurationsaufgaben durch, damit die NetScaler-Appliance den MQTT-Verkehr ausgleichen kann:

  1. Konfigurieren Sie MQTT/MQTT_TLS Dienste oder Dienstgruppen.
  2. Konfigurieren Sie den virtuellen Lastausgleichsserver MQTT/MQTT_TLS.
  3. Binden Sie die MQTT/MQTT_TLS-Dienste an den virtuellen MQTT/MQTT_TLS Load Balancing-Server.
  4. Konfigurieren Sie den virtuellen MQTT/MQTT_TLS Content Switching-Server.
  5. Konfigurieren Sie eine Aktion Content Switching, die den virtuellen Zielserver für den Lastausgleich angibt
  6. Konfigurieren Sie eine Richtlinie für den Content Switching.
  7. Binden Sie die Content Switching-Richtlinie an einen virtuellen Content Switching-Server, der bereits für die Weiterleitung an den bestimmten virtuellen Load-Balancing-Server konfiguriert ist.
  8. Speichern Sie die Konfiguration.

So konfigurieren Sie den Lastenausgleich für MQTT-Verkehr mithilfe der CLI

Konfigurieren Sie MQTT/MQTT_TLS Dienste oder Dienstgruppen.

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 Lastausgleichsserver MQTT/MQTT_TLS.

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

Beispiel:

add lb vserver lb1 MQTT 10.106.163.9 1883

Binden Sie die MQTT/MQTT_TLS-Dienste oder -Dienstgruppen an den virtuellen MQTT-Load-Balancing-Server.

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 Aktion Content Switching, die den virtuellen Zielserver für den Lastausgleich angibt.

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

Beispiel:

add cs action act1 -targetlbvserver lbv1

Konfigurieren Sie eine Richtlinie für den Content Switching.

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 Weiterleitung an den bestimmten virtuellen Load-Balancing-Server 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 den Lastenausgleich für MQTT-Traffic mithilfe der GUI

  1. Navigieren Sie zuTraffic Management>Load Balancing>Virtuelle Serverund erstellen Sie einen virtuellen Lastausgleichsserver vom TypMQTT 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.

Längenbeschränkung für MQTT-Nachrichten

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

So konfigurieren Sie die ADC-Appliance für die Verarbeitung von Jumbo-Paketen mithilfe der 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-Lastausgleich