Я изучаю миграцию приложения на сервисную ткань, работающую на Azure. Это приложение чата в реальном времени, использующее SignalR. Я хотел бы иметь экземпляр службы, выполняющей сам хостинг концентратора SignalR (через OWIN) для каждой «группы сродства», в которой пользователи общаются. Поэтому я могу избежать масштабирования SignalR с объединительной платой. Я бы хотел, чтобы эти функции были развернуты вверх и вниз, так как группы пользователей вошли и покинули мое приложение. Я бы ожидал, что я смогу разместить десятки этих сервисов на виртуальную машину с типичной нагрузкой сотен пользователей на группу.SignalR Актеры или службы без гражданства
Моя идея состоит в том, что у меня будет локатор обслуживания, с которым клиенты сначала подключаются, чтобы узнать, в каком сервисе (порту) размещается их группа. У меня также была бы услуга, которая бы развернула экземпляр чат-сервиса, когда пришел первый запрос для этой группы.
Как я могу создать это в Service Fabric на Azure, чтобы а) каждый из сервисов/актеров доступный с помощью клиента SignalR из Интернета? и б) у меня работает только столько сервисов, сколько необходимо, чтобы обслуживать m
активных групп из n
всего групп? Требование к этому приложению очень кратковременное и острое, поэтому я надеюсь воспользоваться тем фактом, что услуги - это просто процессы и могут быть предоставлены в течение нескольких секунд против моего текущего сценария, когда мне приходится раскручивать все облачные сервисы и ждать десятки минут, чтобы справиться с шипами (на которые указывают, что это слишком поздно)