我使用的是一个Azure EventHub分区,使用Java中的PartitionReceiver类。我正在努力理解我接收到的每个x-opt-sequence-number对象中可用的SystemProperty。
是否保证每个EventData消耗的序列号增量为1,并且分区中存在每个可能的序列号?例如,如果我使用了一个序号为5的事件,而另一个事件的序号为10,那么基于此,是否存在序列号为6-9的事件?
谢谢!
发布于 2020-04-09 13:06:41
修正语境
我的理解是错误的。事件集线器团队已经确认,序列号在单个分区的范围内是连续的。
原始答案
据我所知,序列号在分区范围内并不一定是连续的,尽管它们通常是顺序的。唯一严格的保证是,当事件排队到特定分区时,它们将始终保持不断增长的顺序。序列号是特定于分区的,不应该跨分区进行比较。
如果您需要确保您的排序具有严格和特定的增量,您最好的选择可能是在用户属性集合中为应用程序域的序列号添加一个自定义元数据位。当然,当在多台机器上进行跨出版商的协调时,这会变得非常棘手,而且很可能会出现性能权衡。
https://stackoverflow.com/questions/61121044
复制相似问题