Очереди служебной шины Azure и темы для одного ко многим (уникально) - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть онлайн-сервис, размещенный в Azure, который асинхронно отправляет данные локальным клиентам.Каждый клиент идентифицируется уникальным кодом.

На самом деле существует отдельная тема с подпиской для каждого клиента, у которой есть фильтр уникального кода, который отправляется в качестве параметра в сообщении.Ни одно сообщение никогда не будет передано всем клиентам.

Я чувствую, что использование темы таким способом неправильно.Альтернатива, которая приходит мне в голову, состоит в том, чтобы использовать выделенную очередь для каждого клиента, которая создается при первом контакте

Может ли это быть лучшим подходом?

Спасибо

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

На мой взгляд, использование Topics and Subscriptions - правильный путь.Вот причина:

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

Кроме того, темы и подписки позволят вам создавать функциональные возможности журнала аудита (не уверен, если вы ищете такую ​​функциональность),Вы можете создать отдельную подписку, в которой есть правило для доставки всех сообщений (True SQL Rule) в эту подписку вместе с подпиской для конкретного клиента.

0 голосов
/ 20 февраля 2019

Создание отдельной очереди для каждого клиента не рекомендуется.Это проблема, решаемая Темами.

Если у вас есть отдельная Очередь для каждого клиента, вам необходимо отправлять сообщения в несколько Очереди с Сервера.Это станет утомительным, когда число клиентов увеличивается.

Управлять одной темой и несколькими подписками очень просто, так как сообщение будет отправлено только одной теме с сервера.

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