我目前正在开发一个托管在 Azure 上的应用程序,该应用程序使用 Azure 事件中心。基本上,我正在从 Web API 向事件中心发送消息(或者应该说是事件),并且我有两个侦听器:
- 用于实时分析的流分析任务
- 一个标准工作角色,它根据接收到的事件计算一些东西,然后将它们存储到 Azure SQL 数据库中(这是一个 lambda 体系结构)。
我目前正在使用EventProcessorHost库从我的辅助角色中的事件中心检索我的事件。
我正在尝试找到一些关于如何使用事件中心的最佳实践(使用事件中心比使用服务总线队列更难,即流式处理与消息消耗),我发现有些人说我不应该这样做EventData
从我的事件中心检索事件后进行大量处理。
具体来说 :
请记住,您希望保持您正在做的事情相对较快 - 即不要尝试从这里做很多流程 - 这就是消费者群体的目的。
本文作者在 Event Hub 和 worker 角色之间添加了一个队列(从评论中不清楚是否真的需要)。
所以问题是:我应该直接在事件中心之后(即在ProcessEventsAsnyc
我的IEventProcessor
实现方法中)完成所有处理工作,还是应该在事件中心和处理工作之间使用队列?
任何有关如何正确使用事件中心的事件的建议都将不胜感激,文档目前有点......丢失。