MQTT-broker in der Azure-cloud
Ich habe ein backend mit MQTT-client verbunden zu Open-Source-MQTT-broker (Mosquitto). Auf der anderen Seite habe ich viele frontend-Geräten (PC, Tablet, Handy) mit GUI-Anwendung auch mit der broker. So, hier Mosquitto arbeitet als Kommunikations-Schnittstelle zwischen backend-und frontend-Geräten und nur leitet Nachrichten zwischen Ihnen. Manchmal Datenmenge sehr hoch sein kann (z.B. 1 MB /min).
Einer backend-Gerät + viele frontend-Geräte ist eine installation. Ich muss bereiten Sie die Infrastruktur für Tausende solcher Anlagen gleichzeitig arbeiten. Also mein service-Bedürfnisse sehr scallable. Meine Firma verwendet Azure-cloud-Lösungen, also habe ich angefangen zu lernen, von dieser Lösung und ich muss zugeben, dass ich bin ein bisschen verwirrt. Ich habe gelesen, dass ich von IoT-Hub, aber es müsste MQTT-Gateway in der Lage sein zu sprechen mit MQTT-Geräte. Auf der anderen Seite, wenn ich es gut verstehen, das Gateway ausgeführt werden muss auf einige VM, damit ich hier verlieren Skalierbarkeit von meiner Lösung. Bin ich im Recht? Nun, wenn ich Unterstützung 100k oder 500k Geräte dann werde ich brauchen eine andere VM? Eine weitere Sache ist, dass ich zu integrieren, all dies mit einigen webservice (für die Verwaltung von backend-und frontend-Geräte), also brauche ich eine gewisse Verbindung zwischen der webservice-und der MQTT-broker...
Bevor ich anfing zu spielen mit Azure habe ich gedacht, dass ich einfach anfangen, einen MQTT-broker-service und magisch wird es höchst scallable und wird in der Lage sein, um bieten service für Tausende von Geräten.
Kann jemand mir erklären, wie Sie zu beißen, dass?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Heute gibt es keine offizielle Unterstützung für das MQTT-Protokoll in Azure aber nur die public preview von IoT-Hub, unterstützt AMQP und HTTP.
Verbinden MQTT-Geräte an die IoT-Hub, bietet Microsoft ein "framework" namens IoT-Protokoll-Gateway ( https://github.com/Azure/azure-iot-protocol-gateway ), die ausgeführt wird, eine übersetzung der Protokolle zwischen MQTT und AMQP.
Die IoT-Protokoll-Gateway installiert werden kann on-premise oder in der cloud als einer Azure Worker-Rolle. Im zweiten Szenario haben Sie die Skalierbarkeit von Azure und in Bezug auf worker role Instanzen.
Diese Lösung ist absolut neu aufgrund der kurzen Lebensdauer von IoT-Hub (noch in der public preview) und die IoT-Protokoll-Gateway selbst.
Ihre erste Lösung basiert auf der Verwendung einer Drittanbieter-MQTT-broker (wie mosquitto), dass Sie, sollte die Installation in einer VM. AFAIK mosquitto nicht unterstützt clustering wie broker HiveMQ (siehe andere Antworten hier : Cluster-Bildung mit Mosquitto-broker).
Letzte, was über die Verbindung zwischen dem web service und dem MQTT-broker.
In diesem Fall wird der web-service übersetzen sollten, ruft ihm (vom front-end) zu veröffentlichten Nachricht auf der MQTT-broker mit einem MQTT-client, den Sie brauchen, um innerhalb der web-service selbst.
Selbst wenn die Nutzung von AWS, der folgende link könnte auch hilfreich :
https://groups.google.com/forum/#!Thema/mqtt/19jqofoPLro
Paolo.
Azure IoT-Hub spricht jetzt MQTT nativ. Ein Protokoll-gateway ist nicht mehr erforderlich.
https://azure.microsoft.com/en-us/documentation/articles/iot-hub-mqtt-support/
Dies wird Ihnen helfen, eine Menge, wenn Sie gerade verbrachte die Letzte Stunde versuchte, den MQTT-Benutzername und-Passwort:
https://github.com/Azure/azure-content/blob/master/articles/iot-hub/iot-hub-devguide.md#example
Getestet mit Paho und MQTT.fx auf Windows. Ich konnte es nicht lassen authentifizieren mit mosquitto, und ich habe in vertretbarem Aufwand auch versucht, mit stunnel nur für den Fall mosquitto TLS-support war nicht schneiden. Mosquitto wahrscheinlich gar nicht umgehen das lange Kennwort korrekt oder etwas entlang jenen Linien. Es wirft ein Authentifizierungs-Fehler. Flucht
%
und&
hat nicht geholfen.Wenn jemand ruft Mosquitto für die Arbeit mit Azure IoT-Hub, bitte öffne meine Augen.