Кафка против JMS для публикации событий

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

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

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

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

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

2 ответа

Решение

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

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

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

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

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

Другие вопросы по тегам