// личный канал‑лог
gavrilovlog
← все записи

Kafka 🆚 RabbitMQ

👁 3982
По многочисленным просьбам, решил пока в текстовом варианте опубликовать различия между RabbitMQ и Kafka. Короткое видео про kafka сделаю позже. О чем пост? Провел небольшое исследование, вот какие основные пункты пишут про различия этих двух сервисов. Архитектурные различия: RabbitMQ основан на архитектуре брокера. Kafka использует распределенную архитектуру публикации/подписки. Различие в производительности: Kafka имеет высокую пропускную способность и масштабируемость. RabbitMQ больше подходит для проектов с меньшей пропускной способностью. Различие в надежности: RabbitMQ обеспечивает надежность за счет подтверждения сообщений и дискового хранилища. Kafka предлагает более высокие гарантии надежности за счет репликации и хранения на диске. Use-cases: RabbitMQ лучше подходит для традиционных очередей сообщений и сценариев «запрос-ответ». Kafka предназначена для потоковой передачи больших объемов данных с высокой пропускной способностью в режиме реального времени. Гарантии доставки: Небольшая вводная. Есть 3 варианта гарантий доставки at-least once (не менее одного раза) at-most once (не более одного раза) exactly-once (ровно один раз) RabbitMQ предоставляет, как везде пишут, “базовые гарантии доставки”, такие как - at-least once delivery. Kafka обеспечивает более сильные гарантии доставки, такие как - exactly-once delivery. Также оба сервиса можно настроить на ‘at-most once’, но лично по моему опыту, такой вариант не является предпочтительным. Выбор гарантии доставки зависит от конкретных требований к приложению и его доступности. Например, если важна точность данных, выбор может быть сделан в пользу гарантии доставки exactly-once delivery.
831