Как поддерживаются подписчики в случае распределенного обмена сообщениями на основе темы

У меня есть следующие два вопроса, связанные с распределенной системой обмена сообщениями.

  1. Чем тема отличается от очереди?
  2. Как поддерживаются подписчики в случае с темами.

Пожалуйста, поделитесь любым документом или ссылкой, которые могут быть полезны для понимания этих концепций. Спасибо


person Ashwani K    schedule 08.10.2015    source источник
comment
Хотите прокомментировать, почему за него проголосовали?   -  person Ashwani K    schedule 08.10.2015
comment
Я думаю, вам стоит начать с здесь, чтобы увидеть, как устроены темы Kafka. . Ваш вопрос кажется мне слишком широким, но я буду рад ответить на более конкретные вопросы, если они у вас будут.   -  person serejja    schedule 08.10.2015
comment
@serejja: Спасибо за ссылку.   -  person Ashwani K    schedule 09.10.2015


Ответы (1)


  1. На сайте ActiveMQ есть довольно хорошее объяснение . Цитируется здесь.

Темы

В JMS Topic реализует семантику публикации и подписки. Когда вы публикуете сообщение, оно отправляется всем заинтересованным подписчикам, поэтому ни один из подписчиков не получит копию сообщения. Только подписчики, у которых была активная подписка на момент получения брокером сообщения, получат копию сообщения.

Очереди

JMS Queue реализует семантику балансировщика нагрузки. Одно сообщение будет получено ровно одним потребителем. Если во время отправки сообщения нет доступных потребителей, оно будет храниться до тех пор, пока не будет доступен потребитель, который сможет обработать сообщение. Если потребитель получает сообщение и не подтверждает его перед закрытием, сообщение будет повторно доставлено другому потребителю. Очередь может иметь много потребителей с нагрузкой сообщений, сбалансированной между доступными потребителями. Таким образом, очереди реализуют надежный балансировщик нагрузки в JMS.

2. Подписчики темы, а также потребители очередей поддерживаются в брокере. Однако клиенты-подписчики могут сделать подписку долговечной и позволить брокеру запомнить ее, когда она отключится. Подписчик идентифицируется идентификатором клиента.

person Petter Nordlander    schedule 08.10.2015