Распределение

Кафка потребители распределяются через тематические разделы. Каждый потребитель потребляет сообщения из определенного раздела за раз.
На каждый из них приходится некоторое количество потребителей. RabbitMQ экземпляр очереди. Эти потребители известны как конкурентные потребители, поскольку они конкурируют друг с другом за потребление сообщения. Но сообщение может быть обработано только один раз.


Высокая доступность

С помощью zookeeper он управляет состоянием Кафка кластер и поддерживает высокую доступность.
Благодаря кластеризации и высоким доступным очередям обеспечивается высокопроизводительная репликация данных. Таким образом, RabbitMQ также обеспечивает высокую доступность.


Производительность

Кафка может обрабатывать миллионы сообщений в секунду с меньшим количеством оборудования.
RabbitMQ также может обрабатывать миллионы сообщений в секунду, но для этого требуется больше оборудования.


Репликация

Есть реплицированные брокеры, доступные в Кафкакоторый работает, когда главный брокер не работает.
Здесь очереди не реплицируются автоматически. Конфигурация обязательна.


Мульти подписчик

Несколько типов потребителей могут подписаться на множество сообщений, чтобы Кафка.
В RabbitMQхотя сообщения направляются в разные очереди, только один потребитель из очереди может обработать сообщение.



Протоколы сообщений

Апач Кафка поддерживает примитивы, такие как int8, int16 и т. д., и двоичные сообщения.
RabbitMQ поддерживает любые стандартные протоколы очередей, такие как STOMP, AMQP, HTTP и т. д.


Порядок сообщений

В Кафка Порядок сообщений присутствует только внутри раздела. Это гарантирует, что либо все провалятся, либо пройдут вместе.
RabbitMQ поддерживает порядок потоков через один канал AMQP. Кроме того, он также переупорядочивает повторно переданные пакеты внутри своей логики очереди, что не позволяет потребителю переупорядочивать буферы.


Время жизни сообщения

Кафка содержит файл журнала, который предотвращает все сообщения в любое время.
С RabbitMQ представляет собой очередь, сообщения, однажды использованные, удаляются, а подтверждение принимается.


Архитектура

Распределенная система обмена сообщениями с высокой степенью масштабируемости. У него есть брокеры, темы, разделы и темы внутри Кафка кластер.
Брокер сообщений публикации/подписки общего назначения. Его архитектура отличается от Kafka, поскольку состоит из очередей.


Сценарии использования

Кафка в основном используется для потоковой передачи данных.
Веб-серверы в основном используют RabbitMQ для немедленного реагирования на запросы.


Транзакции

Кафка поддерживает те транзакции, которые демонстрируют шаблон чтения-процесса-записи, выполняемый в/из тем Kafka.
RabbitMQ не гарантирует атомарности, даже если транзакция потворствует только одной очереди.


Язык

Апач Кафка написан на Scala с JVM.
RabbitMQ написан на Эрланге.


Поддержка маршрутизации

Кафка поддерживает сложные сценарии маршрутизации.
RabbitMQ не поддерживает сложные сценарии маршрутизации.


Опыт разработчиков

При высоком росте, Кафка привел к хорошему опыту. Но он поддерживает только клиентов Java.
RabbitMQ содержит зрелые клиентские библиотеки, поддерживающие Java, PHP, Python, Ruby и многие другие.