2013-12-03 1 views
2

Я использую MassTransit и RabbitMQ как для модели «конкурирующих потребителей», так и для модели Pub/Sub.Masstransit и RabbitMQ - сколько подключено потребителей

3 яруса, первого уровня = UI, второй ярус = шлюз третьего уровня = многие распределенные услуги

У меня есть рабочая конкурирующий потребителей модель, но я хотел бы сделать следующее с Pub/Sub:

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

Я не могу найти способ проверить MassTransit (независимо от того, пользуюсь ли я SAGA или нет) во 2-м ярусе, чтобы узнать, сколько подписчиков у меня есть в 3-м ярусе (для разработки, если они все ответили). Общая цель заключается в том, что пользовательский интерфейс получает один ответ с накопленными результатами 3-го уровня.

Аналогичный вопрос: here - ответов пока нет.

UPDATE

Эффективно я хочу, чтобы подсчитать количество раковин на inboundPipeline. Должен ли я делать это и есть ли чистый способ сделать это?

ответ

2

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

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