EventHub 是否保证序列号会递增 1?
Is it guaranteed that sequence numbers will increment by 1 EventHub?
我正在使用 Java 中的 PartitionReceiver class 从单个 Azure EventHub 分区进行消费。我试图了解我收到的每个 EventData 对象中可用的 x-opt-sequence-number
SystemProperty。
是否保证每个消耗的 EventData 序列号递增 1,并且每个可能的序列号都存在于分区中?例如,如果我消费了一个序列号为 5 的事件和另一个序列号为 10 的事件,基于此是否存在序列号为 6-9 的事件?
谢谢!
更正上下文
我的理解有误。事件中心团队已确认序列号在单个分区范围内是连续的。
原答案
据我了解,序列号不能保证在分区范围内是连续的,尽管它们通常是连续的。唯一严格的保证是,关于事件何时排入特定分区,它们将始终按递增顺序排列。序列号特定于分区,不应跨分区进行比较。
如果您需要确保以严格且特定的增量进行排序,最好的办法可能是在用户属性集合中为您的应用程序域的序列号添加自定义元数据位。当然,在多台机器上跨发布者进行协调时,这确实会变得棘手,并且可能会出现性能权衡。
我正在使用 Java 中的 PartitionReceiver class 从单个 Azure EventHub 分区进行消费。我试图了解我收到的每个 EventData 对象中可用的 x-opt-sequence-number
SystemProperty。
是否保证每个消耗的 EventData 序列号递增 1,并且每个可能的序列号都存在于分区中?例如,如果我消费了一个序列号为 5 的事件和另一个序列号为 10 的事件,基于此是否存在序列号为 6-9 的事件?
谢谢!
更正上下文
我的理解有误。事件中心团队已确认序列号在单个分区范围内是连续的。
原答案
据我了解,序列号不能保证在分区范围内是连续的,尽管它们通常是连续的。唯一严格的保证是,关于事件何时排入特定分区,它们将始终按递增顺序排列。序列号特定于分区,不应跨分区进行比较。
如果您需要确保以严格且特定的增量进行排序,最好的办法可能是在用户属性集合中为您的应用程序域的序列号添加自定义元数据位。当然,在多台机器上跨发布者进行协调时,这确实会变得棘手,并且可能会出现性能权衡。