Was ist der Unterschied zwischen MQTT-broker und Apache Kafka
Ich bin der Entwicklung eines mobile messaging-app. Ich ging durch die erforderliche Technologie und fand zwei MQTT & Apache Kafta. Mir scheint, tun die gleiche Sache in der gleichen Weise (in Bezug auf abonnieren & publishing zu einem Thema).
Ich habe gehört, dass MQTT ist fit für Handys, wie es ist sehr geringes Gewicht ? Also, was ist der Unterschied zwischen diesen beiden, und was sind die Vorteil der jedem auf den anderen?
- Stackoverflow ist nicht der Ort zu Fragen, für Vergleiche von Technologien
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das Hauptmotiv hinter Kafka ist die Skalierbarkeit.
MQTT ist ein Protokoll, mit öffentlichen Spezifikation für lightweight-client /message-broker-Kommunikation, so dass publish/subscribe-Austausch. Mehrere Implementierungen von client-Bibliotheken und-Makler (Mosquitto, JoramMQ...) vorhanden sind und nahezu kompatibel. MQTT gibt nur den transport, und vage die Anwendung Teil (D. H. wie die Daten verarbeitet und ggf. gespeichert werden, wie Kunden sind berechtigt,...). Die Skillung ist nicht klar, ob Daten verbraucht auf ein Thema wird nur in Echtzeit oder möglicherweise persistent. Die Skillung nicht etwas darüber, wie der message broker Umsetzung der MQTT könnte/sollte-Skala.
Auf der anderen Seite, Apache Kafka ist ein message-broker-basierend auf einer internen "commit-log": der Schwerpunkt ist die Speicherung großer Mengen von Daten auf der Festplatte, und ermöglicht den Konsum in Echtzeit oder später (solange die Daten noch auf dem Datenträger verfügbar). Es ist entworfen, um bereitgestellt werden, die als cluster mit mehreren Knoten, mit guter Skalierbarkeit-Eigenschaften. Kafka verwendet seine eigene Netzwerk-Protokoll.
Damit Sie vergleichen zwei verschiedene Dinge hier: eine standard-pub/sub-Protokoll (mit mehreren Implementierungen), und eine bestimmte Nachricht speichern/verteilen von software, vaguley der gleichen Familie mit eigenem Protokoll.
Ich würde sagen, dass, wenn Sie benötigen, zu speichern riesige Menge von Nachrichten, um sicherzustellen, batch-Verarbeitung, sehen Sie mehr auf Kafka. Wenn Sie viele clients/apps austauschen von Nachrichten in Echtzeit auf viele unabhängige Themen sehen Sie mehr auf der MQTT (oder sogar AMQP) message-broker-Implementierungen.
light weight
- und small-footprint-also die für mobile Geräte geeignet. Also, was über kafta?MQTT ist ein standard-Protokoll (mit vielen Implementierungen). Kafka (die auch im Protokoll) wird normalerweise verwendet, durch herunterladen von der website von Apache oder z.B. ein Konfluent Docker-image.
Es ist wie äpfel und Birnen vergleichen, beide bestehen aus sehr unterschiedlichen Gründen.
Meisten Anwendungsfälle sehe ich in IoT-Umgebungen kombinieren beide MQTT und Apache Kafka. Die edge-Geräte, sprechen MQTT-Protokoll (für die Vorteile, die es hat, die bei edge-Umgebungen. Diese werden dann weitergeleitet, Apache Kafka, um die Ereignisse in den rest der enterprise-Architektur.
Können Sie dies entweder über ein MQTT-Broker wie HiveMQ + Apache Kafka oder über ein MQTT-Proxy (so dass Sie nicht brauchen, die MQTT-Broker). Beide Optionen haben trade-offs, natürlich.
Sehen diese Beispiel zum kombinieren MQTT mit Apache Kafka. Oder gehen Sie direkt zu den Github-code: "Deep Learning UDF für KSQL für Streaming Anomaly Detection von MQTT IoT Sensor-Daten".
Ich habe auch eine live-demo zur Integration von Apache Kafka und MQTT.