可靠的有状态服务与事件中心

CPA*_*CPA 2 azure signalr asp.net-web-api azure-eventhub azure-service-fabric

使用Microsofts,新的微服务框架可以构建有状态的服务.是否可以使用此类服务​​从不同设备接收数据而不是使用事件中心?例如,我的设备将数据推送到无状态web api服务(可能是近乎实时的SignalR),并且api服务将数据转发到可靠队列中的可实现状态服务.或者是一个可靠的演员.

这些服务是可扩展的,那么我为什么要将Event Hub用于此目的呢?没有事件中心,是否存在直接将数据发送到服务的性能或延迟问题?

Iva*_* G. 6

理论上和实践中都可以,您可以构建自己的无状态服务,该服务具有高度可扩展性,可以根据需要接受尽可能多的负载.在大多数情况下,这是可以接受的.

就资金而言,与Event Hub订阅相比,托管仅接收数据并转发给Actors的服务实例将花费更多.您必须为每个Service Fabric实例付费并实际编写业务逻辑来处理可伸缩性,即使SF使其变得微不足道,仍然存在故障和错误的空间.

事件中心的设计受到极大规模的压力,大多数项目都无法达到.它们针对低延迟进行了优化,可轻松处理每秒数百万个请求.如果这不是你的情况不要打扰.

您只需要在结构中运行Event Hub事件侦听器,因为它充当消息流的可靠"前门",并使服务器体系结构更简单,更可靠.这主要是一个架构决策,取决于项目.