1

消息将存储Event Hub特定的时间间隔。一旦此时间到期,消息将自动删除。由于offsetvalues 定义了 event 在 中的位置partition,我很困惑offset value下次是否会得到相同的结果(在数据从分区过期之后)。如果是这样,那么分区offset事件和事件之间有什么区别?sequence

4

1 回答 1

2

TLDR:您将永远不会收到相同的偏移量 - 即使在 EventHubs 中的数据过期后也是如此。

偏移量:是 EventHub 分区上事件的地址(或指针或光标)。进入实现细节, Offset 是我们服务上的一个结构(其底层值被填充到 64 位 - 用于优化 - 因此客户端中的c# long) - 表示我们服务的底层文件系统中的事件地址。如果您需要从特定点重播 EventHub 分区事件 - 您将需要 Offset。这正是它的目的。

SequenceNumber:是一个单调递增的数字,标记在每个 EventData(在Eventhubs服务上)上,以表示事件的顺序。它是顺序的,旨在用于表示 -流的长度- 否。分区上的事件 - 通过查询GetPartitionRuntimeInfo和 diff。LastEnqueuedSeqNo之间和BeginSeqNo。. 接收器可以获得当前接收到的偏移量(来自EventData.Offset) - 如果您将其与LastEnqueuedSeqNo 进行比较。可以给出 -接收器落后了多少- 这是为它建造的主要原因。

!斯里

于 2016-02-24T00:12:11.150 回答