W tradycyjnej przetwarzania wiadomości, należy zastosować prostych obliczeń na wiadomości - w większości przypadków indywidualnie jednej wiadomości.
W przetwarzania potokowego, zastosowaniu skomplikowanych operacji na wielu strumieni wejściowych i wielu rekordów (czyli komunikaty) w tym samym czasie (jak i agregacji łączy).
Ponadto tradycyjny system komunikacji nie może iść „w czasie” - czyli automatyczne usuwanie wiadomości po dostali dostarczone do wszystkich subskrybowanych konsumentów. W przeciwieństwie do Kafka zachowuje wiadomości, ponieważ używa modelu opartego na ciągnięciu (tj. Dane wyciągane przez konsumenta z Kafki) przez konfigurowalny czas. Pozwala to konsumentom "przewijać" i konsumować wiadomości wiele razy - lub jeśli dodasz nowego konsumenta, może przeczytać całą historię. Umożliwia to przetwarzanie strumieniowe, ponieważ pozwala na bardziej złożone aplikacje. Co więcej, przetwarzanie strumienia niekoniecznie wymaga przetwarzania w czasie rzeczywistym - chodzi o przetwarzanie nieskończonego strumienia wejściowego (w przeciwieństwie do przetwarzania wsadowego, które jest stosowane do skończonych danych wejściowych).
A Kafka oferuje API Kafka Connect and Streams - jest to platforma przetwarzania strumieniowego, a nie tylko system przesyłania wiadomości/pub-sub (nawet jeśli używa go w swoim rdzeniu).
Myślę, że możesz znaleźć https://www.quora.com/What-are-the-differences-between-Apache-Kafka-and-RabbitMQ interesting –