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

时间:2016-01-26 17:46:53

标签: azure asp.net-web-api signalr azure-service-fabric azure-eventhub

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

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

1 个答案:

答案 0 :(得分:6)

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

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

活动中心旨在以极其庞大的规模应对大多数项目无法达到的压力。它们针对低延迟进行了优化,可轻松处理每秒数百万个请求。如果这不是你的情况,请不要打扰。

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