Search
Write a publication
Pull to refresh

Всем привет! Решил кратенько описать частый вопрос на собеседованиях Kafka vs Rabbit, что и когда лучше использовать, ведь данный вопрос наверняка достал многих.

Кратенько о Kafka:

  • Производительность: данный брокер имеет PULL модель выгрузки сообщений потребителям, благодаря такой модели взаимодействия можно равномернее распределить нагрузку, однако задержка на получение сообщений выше

  • Упорядоченность сообщений: Имеет упорядоченность сообщений в рамках одной партиции

  • Хранение сообщений: для каждой партиции сообщения сохраняются в отдельном файлике и возможна повторная выгрузка

  • Маршрутизация: взаимодействие идет через топики, а маршрутизация через consumer group

  • Простота настройки: Имеет более сложную настройку

Кратенько о RabbitMQ:

  • Производительность: данный брокер имеет PUSH модель отправки сообщений, благодаря такой модели, задержка между получением новых потребителем, ниже, чем у Kafka. Однако нужно учесть, что потребитель может не успевать обрабатывать такой поток сообщений и будет перегрузка

  • Упорядоченность сообщений: по умолчанию упорядоченности сообщений нет и необходимо настраивать дополнительно. Также из-за PUSH модели отправки сообщений, невозможно распределить нагрузку равномерно

  • Хранение сообщений: брокер не хранит сообщения и поэтому имеется риск утери и невозможность повторной выгрузки

  • Маршрутизация: благодаря Exchagne, Queue позволяет настроить более гибкую маршрутизацию

  • Простота настройки: Имеет более простую настройки нежели Kafka

Tags:
Total votes 1: ↑1 and ↓0+2
Comments2

Articles