2015-10-27 36 views
5

Jak możemy używać protokołu mqtt z kafka jako brokerem wiadomości?przy użyciu protokołu mqtt z kafka jako brokera wiadomości

Klienci (aplikacje Android/iOS/desktop java itp.) Będą produkować i konsumować wiadomości za pomocą bibliotek po stronie klienta mqtt phao, które są dostępne w różnych językach, używając kafka jako brokera wiadomości.

Każda rada?

Odpowiedz

1

To nie jest dobry pomysł. Klient MQTT zwykle jest bardzo lekki i ma ograniczone zasoby. Te urządzenia lub IoT ma małą moc pamięci/procesora. Klient Kafki generalnie jest ciężki. Na przykład klient Kafki musi śledzić przesunięcie. Wymaga również interakcji z Zookeepers. Krótko mówiąc, Kafka nie nadaje się jako broker MQTT. Lepiej jest wybrać popularnego brokera MQTT, takiego jak Mosquito.

3

AFAIK, nie ma "oficjalnego" złącza MQTT dla Kafki. Ale możesz użyć mostu MQTT-Kafka. Inspiracja: https://github.com/km4rcus/mqttKafkaBridge (Proszę zauważyć, że w tej implementacji występuje błąd: tematy kafka nie mogą zawierać "/", więc prawdopodobnie będziesz chciał zastąpić je "_" w messageArrived w pliku Bridge.java)

Pamiętaj, że ten kod jest po prostu bardzo prostym rozwiązaniem, nie skalowalnym. Dobrym pomysłem jest prawdopodobnie napisanie niestandardowej implementacji, aby lepiej odpowiadała twoim oczekiwaniom. Ale powinieneś zachować to tak proste, jak to tylko możliwe - to pojedynczy punkt awarii. Dopóki dostaniesz swoje dane do Kafki, otrzymujesz gwarancje, ale nie otrzymujesz żadnych gwarancji od brokera MQTT. Kiedy most się zawiesza, po prostu tracisz dane ...

0

Jak wspomniał @Miroslav Prymek, nie ma oficjalnego mostu. Ten został stworzony przez Jacklunda. Uaktualniłem most, aby obsługiwać Kafkę w wersji 0.8.1.1. Zawiera również wstępnie skonstruowany plik binarny zgodny z JRE 1.7. Oto link do MQTT Kafka Bridge.

0

Można użyć Mosca, adapter mqtt napisany w javascript.

Mosca jest node.js pośrednik mqtt, które mogą być używane samodzielnie lub umieszczony w innym zastosowaniu node.js

Mosca obsługuje różne bazami jak REDiS i MongoDB, ale Kafki. Aplikacja Kafka MQTT Bridge to included in the Mosca examples.

This article on linkedin opisuje rozwiązanie pełniej.

Nota prawna: Jestem współtwórcą przykładowej aplikacji Mosca Kafka Bridge.

4

Można użyć złącza źródłowego Kafka, które będzie przesyłać dane z brokera MQTT, takiego jak Mosquitto do klastra Kafka. Patrz: https://github.com/evokly/kafka-connect-mqtt

Najprostszy sposób uruchomienia złącza jest w trybie autonomicznym, w którym pojedyncza instancja będzie działać w klastrze Kafka w jednym węźle. Można również uruchomić go w trybie rozproszonym (aczkolwiek przy znacznie większej konfiguracji), co spowoduje dystrybucję konektora w klastrze w celu zwiększenia przepustowości. W trybie rozproszonym można opracować topologię, która umożliwia skalowanie w poziomie, równoległą przepustowość i wysoką dostępność. Wdrożenie dodatkowych gwarancji wymaga dodatkowych mechanizmów równoważenia obciążenia, wielu brokerów MQTT oraz scenariuszy testamentów i testamentów umożliwiających uporanie się z problemami z łącznikami, ale prawdopodobnie jest to poza zakresem tego pytania.

Korzystanie z podejścia do łączenia ma tę zaletę, że klastra Kafka zapewnia, że ​​złącze jest aktywne i jeśli to konieczne, ponownie je uruchamia. Tryb rozproszony oferuje jeszcze więcej zalet.

Powiązane problemy