C# Azure事件中心-按顺序接收事件
我正在使用下面的代码从Azure事件中心接收事件 我想按顺序处理到达事件中心的请求。例如,有人在很短的时间内发送了5个事件,我想完成请求1的处理,然后我想处理第二个请求 如何处理依次进入事件中心的事件?从 为了使其连续,您需要选择适当的分区键 如果在发布事件时未指定分区键,则 使用循环分配。在许多情况下,使用分区键 如果事件顺序很重要,则是一个很好的选择。当你使用 分区键,这些分区要求在单个节点上可用, 随着时间的推移,可能会发生停机;例如,当计算节点时 重新启动并修补C# Azure事件中心-按顺序接收事件,c#,multithreading,azure,azure-eventhub,C#,Multithreading,Azure,Azure Eventhub,我正在使用下面的代码从Azure事件中心接收事件 我想按顺序处理到达事件中心的请求。例如,有人在很短的时间内发送了5个事件,我想完成请求1的处理,然后我想处理第二个请求 如何处理依次进入事件中心的事件?从 为了使其连续,您需要选择适当的分区键 如果在发布事件时未指定分区键,则 使用循环分配。在许多情况下,使用分区键 如果事件顺序很重要,则是一个很好的选择。当你使用 分区键,这些分区要求在单个节点上可用, 随着时间的推移,可能会发生停机;例如,当计算节点时 重新启动并修补 在从eventhub接
在从eventhub接收的事件束中,有一个名为
序列号
的属性,因为该束是一个列表,所以您可以按序列号
排序,然后处理事件。Event Hub使用分区来实现事件处理的水平缩放。您可以在事件中心创建期间指定从1到32的分区数。消息顺序只保证在一个分区内,而不是在所有分区之间
如果需要维护顺序,则只需将事件写入特定分区,并仅从同一分区读取。在Azure事件中心中,分区分布在不同的实例上,以实现高可用性。这意味着,分区可能会因维护而脱机,然后再联机。所以,若您想要管理订单,那个么您需要对单个分区进行写和读操作,并且您可能需要手动管理诸如从应用程序逻辑脱机的分区等情况
如果您需要管理订单,我建议使用Azure Service Bus队列,该队列的订单和可用性由Service Bus it自行管理