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

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

借助微软新的微服务框架,可以构建有状态的服务。是否可以使用这样的服务从不同设备接收数据而不是使用事件中心?例如。我的设备将数据推送到无状态 Web api 服务(可能使用 SignalR 近实时),并且 api 服务将数据转发到可靠队列中的可靠有状态服务。或者找个可靠的 Actor 。

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

最佳答案

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

就金钱而言,与事件中心订阅相比,托管仅接收数据并将其转发给 Actor 的服务实例的成本要高得多。您必须为每个 Service Fabric 实例付费,并实际编写业务逻辑来处理可扩展性,尽管 SF 使其变得微不足道,但仍然存在出现故障和错误的空间。

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

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

关于azure - 可靠的有状态服务与事件中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35020404/

相关文章:

azure - 有没有办法使用 Slow Cheetah 来转换 Azure Worker Role 中的 app.config?

azure - 用户信息 - 获取更多

c# - Json Formatting.Indented 使用 Web Api Controller, ASP.NET MVC

javascript - Web API Controller 不尊重 CORS 来源

SignalR Hub<T> 实现对基本接口(interface)的支持

authentication - 如何使用 JWT 授权 SignalR Core Hub 方法

azure - Windows 容器组支持

asp.net - 如何从ASP.NET Core Web API中删除重定向并返回HTTP 401?

asp.net - SignalR 1.0alpha2 控制台服务器应用程序

powershell - 如何使用带有证书身份验证的 powershell 获取 Azure Key Vault secret ?