Возможно ли иметь двух издателей для одного и того же типа сообщения и нескольких подписчиков, подписывающихся на тот, который им нужен? Если да, то как я могу его достичь?Два pubslisher для того же типа сообщений в Rebus
ответ
Обычно вы должны моделировать свою систему, чтобы одна конкретная конечная точка «владела» любым типом события и, следовательно, была бы опубликована.
Однако ничто не мешает вам публиковать одни и те же типы событий из нескольких конечных точек, но я бы посоветовал, что они разделяют хранилище подписки в этом случае - например. в SQL Server (хорошо работает также с версиями Express).
Таким образом, клиенту просто необходимо сопоставить тип события с любой произвольной конечной точкой из тех, которые способны его опубликовать, так что, когда они bus.Subscribe<SomeEvent>()
, все издатели получат этого подписчика, когда они bus.Publish(new SomeEvent { ... })
.
Спасибо за ответ. Основная проблема заключается в том, что мы хотим иметь определенных подписчиков, которые должны подписываться только на некоторых издателей, а не на всех. В идеале в описанном выше сценарии они получат сообщение от других издателей. –
С помощью определенных типов событий «одна конкретная конечная точка» вы имеете в виду приложения/модули? Или может ли несколько приложений публиковать один и тот же тип события в одной и той же конечной точке/очереди, которую нужно выбрать одним потребительским приложением? –
У вас может быть столько издателей, сколько хотите, если вы разделите хранилище подписки. С Rebus 2 (версии> = 0.90.0) вы даже можете настроить некоторые из хранилищ подписки, которые будут централизованы, что устраняет всю концепцию владения сообщениями из pub/sub messaging – mookid8000
- 1. Несколько создателей сообщений NDEF того же типа
- 2. Два экземпляра одного типа для одного и того же типа
- 3. Отложить публикацию сообщений в Rebus
- 4. Два типа сообщений в очереди сообщений
- 5. Последовательная обработка определенного типа сообщения в Rebus
- 6. два владельца для того же файла XIB
- 7. Два пути для того же метода
- 8. Жасмин - Два шпиона для того же метода
- 9. Использование верблюда для агрегирования сообщений одного и того же заголовка
- 10. Два разных символа для «того же» проекта
- 11. Дразнящий переменную, когда есть два одного и того же типа
- 12. C# Сравните два списка одного и того же типа объектов
- 13. Несколько папок того же типа в app.yaml
- 14. Как сказать, если два шаблона Классы и того же типа
- 15. Delphi: разные PTypeInfo для того же типа
- 16. Matlab Вывод для кода того же типа
- 17. Приравнивание номеров того же типа?
- 18. Как HTTP-шлюз Rebus подтверждает доставку сообщений
- 19. Ограничение Java generics для того же типа
- 20. Марионеточные серверы того же типа
- 21. Воспроизведение массива того же типа
- 22. Rebus FileSystemMessageQueue
- 23. Тот же экземпляр обработчика Rebus для нескольких сообщений в единице измерения
- 24. Вложенные модели того же типа
- 25. другой объект того же типа
- 26. Конфигурация Rebus для Nlog
- 27. Структура в указателях того же типа
- 28. Члены союза того же типа
- 29. же декларация два различных типа
- 30. Объединение в два потока того же потока
Я пытался с двумя издателями и выглядел, даже если я запускаю издатель 1 и пытаюсь опубликовать то, что он не публикует. Но для издателя 2 он корректно публикует сообщения в своей очереди ввода. В чем может быть проблема? –