Azure Eventhub 序列号排序
Azure Eventhub Sequence Number sequencing
我知道以下对于分区内的序列号是正确的:-
序列号遵循可预测的模式,其中编号在分区范围内是连续且唯一的。因此,如果消息 x 的序列号为 500,则消息 y 的序列号为 501.
说收到消息时的最后一个序列号是 5000,然后再没有收到消息,7 天保留政策后,第 10 天我们在分区上收到一条消息,序列号将从 5001 开始还是会这次会不一样吗?
我问的原因是因为我看到:
"预期的序列号 xxx 小于接收到的序列号 yyy。"?
例如:-
提供的序列号“33508”无效。系统中的最后一个序列号是'583'
只是为了更新此 post 的答案,我们发现确实重新创建了相关的 EventHub,但未重置检查点存储。因此,客户端提供的序列号(从检查点存储中读取)大于服务中的最新序列号。
正如Serkant在上面确认的那样,序列号总是连续的。它只能通过重新创建 eventhub 来中断。通常,您不需要在生产环境中删除和重新创建 EventHub。但是如果你 运行 进入这种情况,你也应该重置检查点存储。
HTH,
阿米特·巴蒂亚
我知道以下对于分区内的序列号是正确的:-
序列号遵循可预测的模式,其中编号在分区范围内是连续且唯一的。因此,如果消息 x 的序列号为 500,则消息 y 的序列号为 501.
说收到消息时的最后一个序列号是 5000,然后再没有收到消息,7 天保留政策后,第 10 天我们在分区上收到一条消息,序列号将从 5001 开始还是会这次会不一样吗?
我问的原因是因为我看到: "预期的序列号 xxx 小于接收到的序列号 yyy。"?
例如:- 提供的序列号“33508”无效。系统中的最后一个序列号是'583'
只是为了更新此 post 的答案,我们发现确实重新创建了相关的 EventHub,但未重置检查点存储。因此,客户端提供的序列号(从检查点存储中读取)大于服务中的最新序列号。
正如Serkant在上面确认的那样,序列号总是连续的。它只能通过重新创建 eventhub 来中断。通常,您不需要在生产环境中删除和重新创建 EventHub。但是如果你 运行 进入这种情况,你也应该重置检查点存储。
HTH, 阿米特·巴蒂亚