Является ли роль Azure Cloud Service Worker единственным вариантом размещения в Azure для запуска обработчика событий EventHub?

В настоящее время я пробиваюсь через концентраторы событий и EventProcessorHost. Все рекомендации, которые я нашел до сих пор, предполагают запуск обработчика событий в рабочей роли облачной службы Azure. Поскольку они очень медленно развертываются и обновляются, мне было интересно, есть ли какая-нибудь служба Azure, которая позволяет мне запускать EventProcessor в более гибкой среде?

Пока моя грубая архитектура выглядит так

Устройство> Центр Интернета вещей> Задание Stream Analytics> Концентратор событий> [MyEventProcessor]> SignalR> Клиенты ...

Или, может быть, есть другой способ получить из Steam Analytics, чтобы отправлять сообщения SignalR?

Любые рекомендации приветствуются.

Спасибо филипп


person Philipp Bauknecht    schedule 01.05.2016    source источник
comment
Не могли бы вы поделиться рекомендацией облачного сервиса? На данный момент я не вижу смысла добавлять облачную службу в качестве дополнительного шага между EH и SignalR.   -  person Alex Belotserkovskiy    schedule 01.05.2016


Ответы (2)


Вы можете использовать службу веб-приложений Azure с включенным SignalR и объединить «шаги» конвейера [MyEventProcessor] и SignalR в один шаг. Я проделал это несколько раз, начав с простой демонстрации чата SignalR и добавил функцию приемника концентратора событий в обработку SignalR. Эта статья закрыта к тому, что я имею в виду с точки зрения подхода.

Вы также можете взглянуть на Azure WebJobs. По сути, он может работать как фоновая служба, выполняя вашу логику. SDK WebJobs поддерживает Event Hub.

person Alex Belotserkovskiy    schedule 01.05.2016
comment
Привет, Алекс, звучит многообещающе. У меня создалось впечатление, что обработчик событий должен быть размещен в какой-то постоянно выполняющейся задаче. Один из источников, которые я использовал до сих пор, - это blogs.msdn.microsoft.com/kaevans/2015/02/24/ - person Philipp Bauknecht; 01.05.2016
comment
@PhilippBauknecht, если вам нужно что-то более похожее на фоновую службу, взгляните на Azure WebJobs. По сути, он может работать как фоновая служба, выполняя вашу логику. SDK WebJobs поддерживает Event Hub. github.com/Azure/azure-webjobs-sdk/wiki/EventHub- поддержка - person Alex Belotserkovskiy; 01.05.2016

Вы можете запустить EventProcessorHost в любом устройстве Azure, которое будет запускать произвольный код C # и будет продолжать работать. Варианты того, где вы должны запустить его, зависят от того, сколько вы хотите потратить и что вам нужно. Итак, Azure Container Service может быть новой причудливой системой развертывания, но его минимальная стоимость может вам не подойти. Я запускаю свои двоичные файлы, которые считывают данные из концентраторов событий на обычных виртуальных машинах Azure, а наша система развертывания отвечает за их управление.

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

person cacsar    schedule 01.05.2016