分区内的Azure EventHub EnqueuedTime是否单调增加?

时间:2019-11-28 12:03:39

标签: azure azure-eventhub

Microsoft Azure EventHubs EnqueueTime是否实现为Lamport时间戳?确保它在单个分区内单调递增?

我想知道的是,可以通过事件的EnqueuedTime与SequenceNumber排序事件吗?

这将使获取分区中所有事件的部分顺序变得简单,而事件在给定分区中的顺序正确。

我记得阅读官方文档时说,入队时间可以以较小的分辨率歪斜,而应该使用SequenceNumber代替。但是我不记得是否仅用于交叉分区。无论如何,这毫无意义,因为SequenceNumbers仅在给定分区中是唯一的。

1 个答案:

答案 0 :(得分:0)

更新1203:

支持团队的反馈:“ enqueuedTime”值表示将消息放入队列的实际时间。如果事件是在同一服务器或不同服务器上处理的,则它不会改变任何内容。这仅取决于何时以及哪个事件首先进入事件中心。


这是一个建议,而不是直接回答您的问题:Azure EventHub EnqueuedTime是否在分区内单调增加?但是,如果您想知道这一点,我可以在ms支持下帮助确认它。

要订购,您可以向事件添加一些属性,例如添加序列号属性以指示事件数据的顺序。有关详细信息,请参见Consistency,我们将其用于订购/过滤事件数据。链接中的示例:

var data = new EventData(Encoding.UTF8.GetBytes("This is my message..."));
// Set a custom sequence number property
data.Properties.Add("SequenceNumber", sequenceNumber);
// Send single message async
await eventHubClient.SendAsync(data);

请让我知道您的担忧。