1

Я разрабатываю службы ASP.NET Web API и помещаю их в очередь Azure Service Bus для обработки. Услуги веб-API размещаются на Azure.Реализация приложения-прослушивателя Azure Service Bus

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

Я хотел бы, чтобы это было организовано на Azure, но не было уверенности в наилучшем способе подхода к этому.

  • Можете ли вы реализовать такую ​​услугу прослушивания и разместить ее на Azure?
  • Каков наилучший подход к внедрению такого приложения/услуги?

ответ

3

Есть несколько вещей, которые вы можете сделать. Вы можете использовать ASB OnMessage API, который позволяет вам регистрировать обратный вызов и обрабатывать входящие сообщения с параллелизмом и автозаполнением.

На Azure у вас есть несколько вариантов: Cloud Services (рабочие ролей), Azure Web Jobs, Azure Functions (если обработка быстро, в противном случае я бы не рекомендовал его), Service Fabric (может быть немного, если система излишества мала) и простые виртуальные машины, если это необходимо.

Предупреждение о функциях - если вы занимаетесь интенсивной работой, функции не идеальны, поскольку вы будете платить за время/память, которую вы выполняете.

+0

@juunas избили меня до него :) Уточнение - веб-задания не имеют проблемы, чтобы работать дольше 5-10 минут. Если вы принимаете участие в рамках плана, который всегда есть, вы платите за план хостинга в любом случае. Так может и использовать его. С функциями, личным мнением, если вы запускаете более нескольких секунд, вы делаете что-то неправильное. Функции должны быть быстрыми. 5 минут не будет квалифицироваться. –

+0

Я, хотя API ASM OnMessage появился где-нибудь, но не был уверен, где он вписывается в лобзик. головоломка. Наши потребности довольно малы, поэтому, надеюсь, любой вариант должен быть работоспособным. Мне нужно потратить некоторое время на изучение этих вариантов и решить, что лучше подходит. – DomBurf

+0

@SeanFeldman Правда, вы можете запускать более длинные веб-задания, но вы можете столкнуться с некоторыми ограничениями времени (которые можно настроить). – juunas

1

Пару вариантов для работников, которые слушают очередь являются:

  1. Функции
  2. Веб Работа

Вы можете увидеть пример использования функции здесь: https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-an-event-processing-function.

Пример использования веб-вакансий находится здесь: https://docs.microsoft.com/en-us/azure/app-service-web/websites-dotnet-webjobs-sdk-service-bus.

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

Следует отметить, что функции не предназначены для действительно длительных заданий (более 5-15 минут), хотя ни одно из них не является веб-заданиями.

+0

Спасибо за ответ. Я проверю их – DomBurf

-1

Почему бы не попробовать запустить процесс linux (daemon) в докере.