Выбор зависит от того, что именно нужно вашим микросервисам. У обоих есть что-то отличное от других.
RabbitMQ в двух словах
Кто из игроков:
- Потребитель
- Издатель
- Exchange
- Маршрут
Поток начинается с издателя, который отправляет сообщение для обмена, Exchange - это промежуточный уровень, который знает, как маршрутизировать сообщение в очередь, потребители могут определить, какиеRabbitMQ отправляет сообщение потребителю из очереди, из которой они потребляют (путем определения привязки), и после получения и получения подтверждения сообщение удаляется из очереди. Любая часть в этой системе может быть масштабирована: производитель, потребитель, а также сам RabbitMQ могут быть кластеризованы и иметь высокую доступность.
Кафка
Кто такие игроки
- Группы потребителей / потребителей
- Производитель
- Подключение источника Kafka
- Подключение приемника Kafka
- Раздел темы и раздела
- Поток Кафки
- Брокер
- Zookeeper
Кафка - надежная система, в которой участвуют несколько человек. но как только вы хорошо понимаете поток, с ним становится легко управлять и работать. Производитель отправляет запись сообщения в тему, тема - это категория или имя канала, для которого публикуются записи, их можно разбить на разделы, чтобы повысить производительность, потребители подписались на тему и начинают получать из нее сообщения, когда темасекционируя, то каждый раздел получает свой собственный экземпляр потребителя, мы называли все экземпляры одного и того же потребителя группой потребителейВ Kafka сообщения всегда остаются в теме, даже если они были использованы (лимит времени определяется политикой хранения). Кроме того, Kafka использует последовательный дисковый ввод-вывод, этот подход повышает производительность Kafka и делает его опцией лидера в реализации очередей. и безопасный выбор для случаев использования больших данных.
![Comparing](https://i.stack.imgur.com/ihjqp.png)
Используйте Kafka, если вам нужно
- Журнал путешествий во времени / длительный период / фиксация
- Много потребителей для одного и того же сообщения
- Высокая пропускная способность
- Потоковая обработка
- Реплицируемость
- Высокая доступность
- Порядок сообщений
Используйте RabbitMq, если вам нужно:
- гибкая маршрутизация
- Приоритетная очередь
- Стандартная очередь сообщений протокола
Для получения дополнительной информации