Кафка против JMS для публикации событий - PullRequest
0 голосов
/ 31 декабря 2018

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

  1. Ноль потерянных сообщений.
  2. Возможность динамической регистрации нескольких слушателей определенного типа для увеличения пропускной способности.
  3. Слушатели не являютсягарантированно будет живым при отправке сообщений.

Мы рассматриваем 2 варианта:

  1. Отправка каждого сообщения в JMS основной очереди, затем прослушиватели этой очереди.будет направлять сообщения в определенные очереди в соответствии с содержимым сообщений, а затем целевые службы будут прослушивать эти конкретные очереди.
  2. Отправлять сообщения в тему Kafka по типу сообщения, после чего целевые службы будут подписываться насоответствующую тему и употребляйте сообщения.

Каковы минусы и плюсы в использовании JMS или Kafka для этой цели?

Ответы [ 2 ]

0 голосов
/ 01 января 2019

Я бы предложил использовать Kafka, так как он имеет механизм отказоустойчивости, и даже если какое-либо сообщение потеряно или не перехвачено каким-либо слушателем, вы можете легко получить его из кластера Kafka.

Наряду с этим вы можете легко добавитьновый слушатель / слушатель в группе и kafka вместе с zookeeper позаботятся об управлении им очень хорошо.

Таким образом, Kafka - это распределенная система обмена сообщениями с подпиской на публикации, которая разработана для быстрой, масштабируемой и долговечной работы.Как и многие системы обмена сообщениями с публикацией и подпиской, Kafka поддерживает потоки сообщений в темах.Производители пишут данные по темам, а потребители читают по темам.

Очень просто для интеграции.

0 голосов
/ 31 декабря 2018

Ваше первое требование - «ноль потерянных сообщений».Однако, если вам нужна семантика публикации-подписки (т. Е. Темы в JMS), но прослушиватели не гарантируют, что они будут живы при отправке сообщений, тогда JMS не является стартовым, так как эти сообщения будут просто отброшены (т. Е. Потеряны).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...