Как моя функция Azure выборочно использует сообщения от служебной шины? - PullRequest
0 голосов
/ 26 июня 2018

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

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

То есть - я пытаюсь реализовать шаблон типа "выборочный потребитель" на этом. Возможно ли это с функциями Azure?

Ответы [ 3 ]

0 голосов
/ 26 июня 2018

Какая польза от создания отдельных функций для прослушивания одной и той же очереди? Насколько я знаю, прослушивать одну и ту же очередь несколькими слушателями не очень хорошая идея (существует концепция разделения очереди, но я не очень хорошо с ней знаком).

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

Примечание Целесообразно разделить ответственность, передав индивидуальную функцию Azure (прослушиватель Servicebus) в отдельную очередь, в противном случае вы можете выбрать тему.

0 голосов
/ 26 июня 2018

Еще один вариант для темы Service Bus , на которую ответил Михаил, - это использовать модель публикации-публикации Azure Event Grid.

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

Обратите внимание, что эта модель является push-моделью, поэтому не нужно никакого прослушивателя для извлечения сообщения.

Пределы AEG:

  • 100 пользовательских тем для подписки Azure
  • 500 подписок на мероприятия по теме
  • 5000 событий в секунду на тему
0 голосов
/ 26 июня 2018

Похоже, что раздел и подписка шины интеграции могут помочь вам:

  1. Создать отдельную тему.
  2. Отправлять сообщения в эту тему с типом данных в метаданных.
  3. Создание подписки для каждой функции Azure.Добавьте фильтры для каждой подписки на основе значения метаданных типа данных, см. Фильтры тем и действия
  4. Настройка функций для прослушивания соответствующей подписки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...