Кафка PointToPoint

Проблема

У нас есть установка ActiveMQ с несколькими центрами обработки данных, с NFS для каждой пары HA, и кажется, что activeMQ на самом деле не масштабируется и плохо справляется с проблемами NFS. (мы используем 5.7)

Возможное решение

Переехать к Кафке

Требования

  • Нам нужны функции PointToPoint и pub/sub
  • Приоритеты сообщений (я знаю, что kafka не предоставляет это из коробки, но на нашей стороне есть обходной путь)

Вопрос

Возможно ли это с Kafka (не обязательно из коробки, но с некоторой настройкой клиента)? Если нет, то какую другую технологию вы могли бы предложить? Это не обязательно должен быть JMS, но он должен быть масштабируемым и надежным (и он должен хорошо работать с NFS).


person Vladimir    schedule 10.07.2013    source источник


Ответы (4)


Нам нужны функции PointToPoint и pub/sub

Kafka делает это.

Приоритеты сообщений

Немного запутался, что именно вы имеете в виду, но по приоритетам, если вы имеете в виду потребление с определенного смещения, тогда низкоуровневый или простой потребительский API обеспечивает это. Он также поддерживает повторную отправку сообщений.

person user2720864    schedule 30.08.2013

Для двухточечной доставки сообщений (один производитель, один потребитель) вы можете настроить количество разделов как 1. Производитель будет публиковать сообщения в этой теме и разделе, а один потребитель будет читать из этой темы и раздела. Тема будет равняться вашей очереди в терминах ActiveMQ.

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

person Aarti    schedule 12.04.2016
comment
Они могут использовать отдельную тему для каждого уровня приоритета - person Robert Navado; 24.04.2016

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

person Robert Navado    schedule 24.04.2016

Kafka предоставляет модели использования двухточечной подписки и публикации с помощью концепции групп пользователей. Что там напрямую не поддерживается, так это селекторы, приоритеты. Но вы получаете возможность распределять сообщения по разделам, чтобы вы могли, например, распределять сообщения на основе приоритета разделов. Вы также получаете бесплатно сохранение сообщений (один из основных принципов), ограниченное политикой хранения. Каждое сообщение в kafka по сути является парой ключ-значение. Ключ имеет некоторую специфическую семантику при разбиении на разделы и сжатии журналов. В традиционных системах обмена сообщениями нет ничего похожего на то, что вы можете использовать настраиваемый заголовок, который можно использовать для маршрутизации и т. д. destilled/" rel="nofollow noreferrer">статья пытается обобщить это.

person jaksky    schedule 03.11.2016