Требует ли шаблон обмена сообщениями «публикация-подписка» столько очередей, сколько потребителей?

avatar
user1008636
14 марта 2018 в 01:31
115
1
0

Скажем, мне нужно публиковать цену в заданном биржевом тикере каждый раз, когда цена меняется, а на другом конце есть подписчики (потребители), которым нужно потреблять эту цену.

Это типичный шаблон pub-sub (вместо двухточечного). Типично ли настраивать N очередей, если есть N потребителей, и заставлять издателя публиковать одно и то же сообщение в каждой из N очередей?

Я не понимаю, как это можно сделать с помощью только одной очереди, поскольку каждое сообщение будет удалено, как только его получит один потребитель (это модель "точка-точка")

Источник

Ответы (1)

avatar
Adem Catamak
14 марта 2018 в 01:42
0

Да, системе обмена сообщениями требуется очередь для каждого клиента.

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

Или

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