首页 > 解决方案 > Azure 事件中心 - 按顺序接收事件

问题描述

我正在使用下面的代码从 Azure Event-Hub 接收事件

https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-dotnet-framework-getstarted-send#receive-events

我想按顺序处理到达事件中心的请求。例如有人在非常快的时间内发送了 5 个事件,我想完成请求 1 的处理,然后我想处理第二个请求。

如何按顺序处理到达事件中心的事件?

标签: c#multithreadingazureazure-eventhub

解决方案


事件中心使用分区来启用事件处理的水平扩展。您可以在事件中心创建期间指定从 1 到 32 的分区数。消息顺序仅在一个分区内得到保证,而不是在所有分区中得到保证。

如果您需要维护顺序,则只需将事件写入特定分区并从同一分区读取。在 Azure 事件中心中,分区分布在不同的实例中以实现高可用性。这意味着,分区可能会脱机进行维护,然后再联机。因此,如果您想管理订单,您需要对单个分区进行写入和读取,并且您可能需要从应用程序逻辑中手动管理分区下线等情况。

如果您需要管理订单,我建议使用 Azure 服务总线队列,该队列由服务总线自行管理。


推荐阅读