Как стать автором
Обновить

Apache Kafka и RabbitMQ: в чем разница и что лучше изучать?

Время на прочтение 6 мин
Количество просмотров 49K
Всего голосов 23: ↑19 и ↓4 +15
Комментарии 8

Комментарии 8

Начиная с версии 3.9 в RabbitMQ есть плагин Stream, который позволяет создавать структуры, очень похожие на топики Kafka, но, фактически, являющиеся персистентными очередями RabbitMQ c возможностью произвольного чтения (с любого места). Фича очень крутая и для небольших нагрузок, скорее всего, лучше выбирать RabbitMQ.

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

Куча плагинов - MQTT, STOMP, в том числе и через Websockets.

Кафка для поддержки сложновата, но быстра - это да.

RabbitMQ - "настроил и забыл". По крайней мере у меня работает 5 лет - один сервер для связи более 20 сервисов, плюс еще один для внешнего API через shovel-плагин обмениваются сообщениями. Впрочем, поток сообщений небольшой - около 12-15 сообщений в секунду в среднем.

RabbitMQ - "настроил и забыл". По крайней мере у меня работает 5 лет - один сервер для связи более 20 сервисов, плюс еще один для внешнего API через shovel-плагин обмениваются сообщениями. Впрочем, поток сообщений небольшой - около 12-15 сообщений в секунду в среднем.

это не так

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

Сижу во всяких группах по рэбиту и в РФ до сих пор говорят только о зеркальных очередях(((

Они там пишут в блоге, что в 4.0 зеркальные очереди выпилят, так что так или иначе придётся переходить на кворумные.

Вы что-то напутали в выводах, потому что:

Вначале обсуждалось, что Kafka больше подходит для Publish\Sub и вообще "тупой брокер", поэтому пункт про RabbitMQ - "Приложения, которым требуются различные возможности обмена сообщениями типа Publish/Subscribe или взаимодействие типа точка-точка «запрос-ответ»" -- это наверно всё-таки про Kafka. А так же упоминалось - сложная маршрутизация и "умный брокер" - это про RabbitMQ. Поэтому пункт про Kafka - "Потоки с пропускной способностью не менее 110 000 событий в секунду, сложная маршрутизация или порядок секционирования at least once." -- наверно должен быть без "сложная маршрутизация".

В оригинале было https://www.simplilearn.com/kafka-vs-rabbitmq-article?source=frs_author_page#:~:text=Data Usage,logging statistics, and system activity

Streams with a throughput of at least 110K/sec events, complex routing, or “at least once” partitioned ordering

К сожалению, статья переводная, а не по впечатлениям от использования Кафки.

То есть скорее должно было бы быть:

Потоки с пропускной способностью не менее 110 000 событий в секунду, сложной маршрутизации или порядком секционирования at least once.

?

Apache Kafka – это распределенная платформа потоковой передачи событий

оставляет их там до достижения предела хранения или тех пор, пока консьюмер не прочитает эти сообщения.

Мне одному кажется, что вторая часть утверждения не соответствует действительности?
Мне кажется неподготовленному читателю лучше дальше не смотреть, чтоб не получить неверную информацию

Зарегистрируйтесь на Хабре , чтобы оставить комментарий