Kafka vs RabbitMQ на примерах
Автор: Распределенные системы и system design
Загружено: 2025-10-15
Просмотров: 610
Объясняются главные принципы работы обеих технологий.
На примерах показывается, когда что использовать.
--------------
Помимо Kafka и RabbitMQ есть еще NATS.
По смыслу ближе к RabbitMQ, тк задизайнен для раздачи из одной очереди/стрима нескольким консьюмерам одновременно.
Из-за этого возникает *не*упорядоченность обработки сообщений.
Чтобы использовать для CDC, как кафку, т.е. с упорядоченной обработкой сообщений, нужно обеспечить одного консьюмера на стрим, координируя единственность консьюмера через, напр., etcd. (Такая же проблема, как с RabbitMQ)
Но в этом сценарии будет уступать кафке по throughput, тк у Nats больше оверхэда - много всего трэкается per message.
Оверхэд этот нужен, когда из одного стрима раздаем сообщения многим консьюмерам, но получается лишний для одного консьюмера.
Итого, NATS - золотая середина между RabbitMQ и Kafka.
Может многое из того, что может RabbitMQ, но не все. Например, назначать сообщениям в очереди приоритеты (priority queue) не получится. RabbitMQ в этом плане более умная и сложная очередь.
Может то же, что и Кафка, но уступает по throughput.
При этом превосходит обоих в легковесности.
Имеет смысл предпочесть Nats, если не нужны priority queue (и прочие сложные истории), а также если не нужен очень высокий throughput (при highload).
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: