2016-05-23 16 views
6

Pracuję nad aplikacją mobilną do przesyłania wiadomości. Przeszedłem przez potrzebną technologię i znalazłem dwa MQTT & Apache Kafta. Dla mnie oba wydają się robić to samo w ten sam sposób (pod względem subskrypcji & publikowania w temacie).Jaka jest różnica między brokerem MQTT a Apache Kafką

Słyszałem, że MQTT nadaje się do telefonów komórkowych, ponieważ jest bardzo lekki? Więc jaka jest różnica między tymi dwoma i jakie są zalety każdego z nich?

+0

Stackoverflow nie jest miejscem, w którym należy pytać o porównanie technologii. – hardillb

Odpowiedz

16

Głównym motywem kafka jest skalowanie.

MQTT to protokół z publiczną specyfikacją dla komunikacji z brokerem typu klient/komunikat, umożliwiający wymianę publikowania/subskrypcji. Wiele implementacji bibliotek klienta i brokerów (Mosquitto, JoramMQ ...) istnieje i jest praktycznie zgodna. MQTT właśnie określa transport i niejasno część aplikacji (tj. Sposób obsługi i przechowywania danych, sposób autoryzowania klientów ...). Specyfikacja nie jest jasna, jeśli dane konsumowane na temat są tylko w czasie rzeczywistym lub mogą być utrzymane. Specyfikacja nie zawiera informacji o sposobie skalowania brokera komunikatów implementujących MQTT.

Z drugiej strony, Apache Kafka jest brokerem komunikatów opartym na wewnętrznym "dzienniku zatwierdzania": jego zadaniem jest gromadzenie ogromnej ilości danych na dysku i zezwalanie na konsumpcję w czasie rzeczywistym lub później (o ile dane są nadal dostępne na dysku). Został zaprojektowany do wdrożenia jako klaster wielu węzłów o dobrych właściwościach skalowalnych. Kafka używa własnego protokołu sieciowego.

Porównujesz tutaj dwie różne rzeczy: standardowy protokół pub/sub (z wieloma implementacjami) i oprogramowanie do przechowywania/dystrybucji komunikatów, vaguley tej samej rodziny z własnym protokołem.

Powiedziałbym, że jeśli chcesz przechowywać ogromną ilość wiadomości, aby zapewnić przetwarzanie wsadowe, spójrz bardziej na Kafkę. Jeśli masz dużo klientów/aplikacji wymieniających wiadomości w czasie rzeczywistym na wielu tematach, to bardziej patrz na brokerów komunikatów MQTT (lub nawet AMQP).

+0

Czy kafta jest idealna do przesyłania wiadomości z aplikacji mobilnych, takich jak WhatsApp? – manish

+0

tak, dlaczego nie! zależy to od nas, jak zaprojektujemy architekturę .. –

+0

, dlaczego zapytałem, ponieważ dowiedziałem się, że MQTT jest "lekka" i ma mały rozmiar, tak odpowiedni dla urządzeń mobilnych. A co z kafta? – manish

Powiązane problemy