Nats.io: Будут ли подписчики с разными темами, но с одинаковой именной очередью обрабатывать сообщения параллельно?

Представим, что у нас есть сервер A с издателем и серверы B и C с потребителями. Также у нас есть 5 разных предметов; foo1, foo2, ... foo5. Мы всегда хотим отправить сообщение только одному потребителю и получить только один ответ.

Поэтому мы используем функцию requestOne из JS SDK на стороне издателя и функцию подписки с параметр {очередь: "по умолчанию"}. Таким образом, оба сервера B и C были подписаны по одному разу на каждую тему. Но каждый раз, когда они подписываются, они используют очередь с именем «default», чтобы несколько потребителей не получали одно и то же сообщение, как указано в документы.

Таким образом, возникает вопрос: будет ли эта очередь с именем «default» совместно использоваться всеми субъектами? Или у каждой темы будет своя собственная очередь с именем «default», и она будет делиться между подписчиками определенной темы.

Например: производитель генерирует 10 сообщений 2 по каждой теме. Будем ли мы обрабатывать 10 сообщений одновременно или только 2 сообщения, поскольку все подписки используют одну и ту же очередь с именем «default»?


person santriseus    schedule 06.09.2018    source источник


Ответы (2)


Вы формируете группу очередей на основе указанного имени очереди и темы. Таким образом, группа очередей «foo» отличается от группы очередей «bar».

При этом с помощью подстановочных знаков у вас может быть несколько субъектов, входящих в одну и ту же группу очереди. То есть, 2 члена группы bar, прослушивающие «foo. *», Разделят обработку сообщений, отправленных на «foo.bar», «foo.baz» и т. Д.

person I. Kozlovic    schedule 28.09.2018

Одно и то же имя очереди в разных предметах является отдельным.

Вы можете проверить это на примерах по ссылке ниже. https://nats.io/documentation/additional_documentation/nats-queueing/

запустить nats server

гнэтсд

sub subject1

иди запустите nats-qsub.go subject1 по умолчанию

...

sub subject2

иди запустите nats-qsub.go subject2 по умолчанию

...

pub subject1 & 2

иди запустите nats-pub.go тема1 сообщение

...

иди запустите nats-pub.go тема2 сообщение

...

person GU Ce    schedule 25.10.2018