Internet der Dinge: HiveMQ 3.2 optimiert die Cluster-Performance
Der MQTT-Broker unterstützt in Version 3.2 zudem das von HAProxy vorangetriebene Proxy Protocol und erweitert das Plug-in-System. Außerdem haben die Macher den Speicherbedarf und Latenzen im Vergleich zum Vorgänger reduziert.
Der von der Landshuter Firma dc-square entwickelte kommerzielle MQTT-Broker HiveMQ konzentriert sich in der frisch veröffentlichten Version 3.2 vor allem auf Optimierungen unter der Haube. So haben die Macher laut dem Blogbeitrag zur Veröffentlichung den Speicherbedarf reduziert. Das sogenannte "Active Anti Amplification" soll zudem verhindern, dass bei einer großen Auslastung der Speicherbedarf zu sehr ansteigt und sorgt vor allem bei umfangreichen Nachrichten für eine bessere Performance. Zudem sollen die Latenzen geringer sein.
Nachdem HiveMQ 3.1 ein neues Clustering-System eingeführt hatte, das besser skaliert als der Vorgänger, verringert das aktuelle Release sowohl die Latenzen zwischen den Knoten als auch den Verkehr im Cluster durch verbessertes Routing. Laut dem Blogbeitrag sind Hunderttausende Nachrichten pro Sekunde zwischen einer beliebigen Zahl von Knoten problemlos realisierbar. Dabei dürfen Cluster mit einer gemischten Konfiguration aus Version 3.1 und 3.2 laufen. Ältere Versionen sind jedoch aufgrund des in HiveMQ 3.1 geänderten Clusterings nicht kompatibel.
Proxy und Plug-ins
Neuerdings unterstĂĽtzt der Broker das von HAProxy vorangetriebene Proxy Protocol, mit dem sich mehrere Proxies verbinden lassen und dabei die Informationen ĂĽber den Client wie dessen IP-Adresse weiterleiten. HiveMQ untersĂĽtzt auch Erweiterungen des Protokolls, mit dem Load Balancer beliebige Informationen ĂĽber das TLV-Format (Type-Length-Value) weitergeben.
Das Plug-in-System von HiveMQ bringt im aktuellen Release ebenfalls einige Neuerungen. So lassen sich MQTT-Clients nun programmatisch vom Server abtrennen. Dabei lassen sich auch die LWT-Nachrichten (Last Will and Testament) unterdrücken, die üblicherweise über den unerwarteten Verbindungsabbruch zu einem MQTT-Clients informieren. Außerdem können Callbacks jetzt die Art der Verbindung zu einem MQTT-Client (wie Websocket oder SSL) abfragen.
Weitere Details zu HiveMQ 3.2, unter anderem zu den erweiterten Monitoring-Metriken und dem automatischen Laden von Java Keystores und Truststores, stehen im Blogbeitrag. Dominik Obermaier, der Geschäftsführer von dc-Square, ist Referent des im Dezember ausgestrahlten iX-Live-Webinars IoT-Protokolle von TCP/UPD bis MQTT.
Siehe dazu auf heise Developer:
- Kommunikation ĂĽber MQTT
- Dominik Obermaier und Jens Deters: EinfĂĽhrung in MQTT
- Internet-Protokolle, Teil 2: Anwendungsprotokolle im Vergleich
(rme)