Отрегулируйте / ограничьте очередь ServiceBus для запуска формы сообщения ServiceBusTrigger - PullRequest
0 голосов
/ 16 января 2019

У меня есть ServiceBusQueue ( SBQ ), который получает много полезных сообщений. У меня есть ServiceBusTrigger ( SBT ) с accessRights (управление), который постоянно опрашивает сообщение из SBQ.

Проблема, с которой я сталкиваюсь: Мой SBT (16 экземпляров одновременно) выбирает сообщения (16 сообщений по отдельности) одновременно и создает запрос к другому серверу (предположим, S1). Если SBT непрерывно создает 500-600 запросов, то сервер S1 перестает отвечать.

Я ожидаю: Я мог бы ограничить / забрать сообщение сразу из SBQ, чтобы косвенно ограничить отправку запроса.

Пожалуйста, поделитесь своими мыслями, какой дизайн я должен следовать. Я не мог найти точное решение.

1 Ответ

0 голосов
/ 17 января 2019
  1. Ограничение макс. Одновременных вызовов Триггера служебной шины.

    В host.json добавьте конфигурацию к параллельности газа (т. Е. По умолчанию 16 messages at once, которую вы видели). Возьмите пример функции v2.

    {
      "version": "2.0",
      "extensions": {
        "serviceBus": {
            "messageHandlerOptions": {
                "maxConcurrentCalls": 8
            }
         }
      }
    }
    
  2. Ограничить Количество экземпляров узла функции . Когда хост масштабируется, каждый экземпляр имеет один триггер служебной шины, который одновременно читает несколько сообщений, как указано выше.

    Если триггер находится в выделенном плане обслуживания приложения, масштаб в экземпляре считается небольшим значением. Для функций в плане потребления добавьте настройку приложения WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT с разумным значением (<= 5). Конечно, мы можем установить количество в 1, чтобы строго контролировать поведение. </p>

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

  4. Использование статических клиентов для повторного использования соединения с сервером S1.

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