Поддерживает ли NServiceBus несколько экземпляров одного и того же абонента на одном физическом компьютере? - PullRequest
2 голосов
/ 01 апреля 2011

У нас есть прототип NService, работающий с издателем и компонентом подписчика.

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

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

Мы правы?Это поведение по своему замыслу или мы что-то неправильно настроили?

1 Ответ

4 голосов
/ 01 апреля 2011

Вы можете иметь несколько подписчиков на одном физическом компьютере - им просто нужны независимые очереди ввода.

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

Это в основном то, что показано в примере PubSub, включенном в код NServiceBus.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...