Надежный сервис с отслеживанием состояния и концентратор событий

С новой микросервисной структурой Microsoft можно создавать сервисы с отслеживанием состояния. Можно ли использовать такую ​​службу для получения данных с разных устройств вместо концентраторов событий? Например. мои устройства передают данные в службу веб-API без сохранения состояния (возможно, с SignalR почти в реальном времени), а служба API перенаправляет данные в надежную службу с отслеживанием состояния в надежной очереди. Или надежному актеру.

Эти службы являются масштабируемыми, так зачем мне использовать Event Hub для этой цели? Есть ли проблемы с производительностью или задержкой при отправке данных напрямую в службу без концентратора событий?


person CPA    schedule 26.01.2016    source источник


Ответы (1)


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

В денежном выражении размещение экземпляров служб, которые только получают данные и пересылают их субъектам, обойдется вам значительно дороже, чем подписка Event Hub. Вы должны платить за каждый экземпляр Service Fabric и фактически писать бизнес-логику для обеспечения масштабируемости, хотя SF делает это тривиальным, но остается место для сбоев и ошибок.

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

Вам нужно только запустить прослушиватель событий концентратора событий в вашей структуре, потому что он действует как надежный «входной вход» для потока сообщений и делает архитектуру сервера несколько проще и надежнее. В основном это архитектурное решение, зависит от проекта.

person Ivan G.    schedule 26.01.2016
comment
Спасибо! Служба API без сохранения состояния уже есть в качестве моей точки входа в приложение. Хорошо, я пытаюсь использовать службу API для нескольких устройств. Но я понимаю вашу точку зрения, когда у меня гораздо больше устройств, вероятно, разумнее использовать систему сообщений. Мне было интересно узнать о производительности по сравнению с собственной службой в качестве точки входа устройства. Я стараюсь не использовать слишком много облачных сервисов из-за того, что в конечном итоге перейду на частное облако, если это требуется от клиента. - person CPA; 26.01.2016