我知道以下是分区内序列号的真实情况:
序列号遵循可预测的模式,其中编号是连续的且在分区范围内是唯一的。因此,如果消息x的序列号为500,则消息y的序列号为501。
假设收到消息时的最后一个序列号是5000,然后没有收到更多的消息,在7天的保留策略之后,在第10天我们在分区上收到了一条消息,序列号是从5001开始还是这次会有所不同?
我之所以问这个问题,是因为我看到:“预期的序列号xxx小于收到的序列号yyy。”?
例如:-提供的序列号'33508‘无效。系统中的最后一个序列号是'583‘
发布于 2021-06-11 00:42:59
为了更新这篇文章的答案,我们发现相关的EventHubs确实被重新创建了,但是检查点存储没有被重置。因此,客户端提供的SequenceNumber (从检查点存储读取)大于服务中的最新序列号。
正如Serkant上面所确认的,序列号始终是连续的。它只能通过重新创建eventhub来中断。通常,您不应该需要在生产环境中删除和重新创建EventHub。但是如果你遇到这种情况,你也应该重置检查点存储。
HTH,Amit Bhatia
https://stackoverflow.com/questions/67855952
复制相似问题