首页 > 解决方案 > 是否保证序列号将增加 1 EventHub?

问题描述

我使用 Java 中的 PartitionReceiver 类从单个 Azure EventHub 分区中消费。我试图了解x-opt-sequence-number我收到的每个 EventData 对象中可用的 SystemProperty。

是否保证每个 EventData 消耗的序列号增加 1,并且每个可能的序列号都存在于分区中?例如,如果我使用了一个序列号为 5 的事件,另一个使用了 10 的事件,那么基于此必须存在序列号为 6-9 的事件吗?

谢谢!

标签: azureazure-eventhub

解决方案


更正的上下文

我的理解是不正确的。事件中心团队已确认序列号在单个分区范围内是连续的。


原始答案

据我了解,序列号不能保证在分区范围内是连续的,尽管它们通常是连续的。唯一严格的保证是,当事件被排入特定分区时,它们将始终按递增顺序排列。序列号特定于分区,不应跨分区进行比较。

如果您需要确保使用严格且特定的增量进行排序,最好的选择可能是在用户属性集合中为应用程序域的序列号添加自定义元数据位。当然,当在多台机器上跨发布者进行协调时,这确实会变得很棘手,并且可能会出现性能权衡。


推荐阅读