我目前正在通过Event Hubs和EventProcessorHost进行战斗。到目前为止,我发现的所有指导建议在Azure云服务工作者角色中运行EventProcessor。由于部署和更新速度非常慢,我想知道是否有任何Azure服务可以让我在更敏捷的环境中运行EventProcessor?
到目前为止,我的粗糙架构看起来像这样
设备> IoT Hub>流分析工作>事件中心> [MyEventProcessor]> SignalR>客户...
或许还有另一种方法可以从Steam Analytics获取SignalR消息?
任何建议都受到高度赞赏。
谢谢,菲利普
答案 0 :(得分:1)
您可以在启用SignalR的情况下使用Azure Web App服务,并将管道“步骤”[MyEventProcessor]和SignalR合并为一步。 我已经完成了几次,从简单的SignalR聊天演示开始,并将Event Hub接收器功能添加到SignalR处理中。 That文章接近我所说的方法。
您也可以查看Azure WebJobs。基本上,它可以作为执行逻辑的后台服务。 WebJobs SDK has the support of Event Hub。
答案 1 :(得分:0)
您可以在任何Azure中运行EventProcessorHost,它将运行任意C#代码并继续运行。您应该运行它的位置的选项最终取决于您想要花多少钱以及您需要什么。因此Azure Container Service可能是新的花式部署系统,但它的最低成本可能不适合您。我正在运行我的二进制文件,它在普通Azure虚拟机上从EventHubs读取数据,我们的部署系统负责管理它们。
如果使用SignalR与客户交谈的前端进程有一个可以保持一段时间的进程,那么您可以让它们中的每一个成为自己的逻辑消费者(消费者组)并让它们使用整个流。或者即使他们不在附近(即您使用Azure托管选项在空闲时关闭进程),您可以将接收器编写为刚刚开始在流结束时(而不是重新处理旧版本)数据),如果这是您的方案所需要的。