Azure 事件中心 : Offset vs Sequence number

标签 azure azure-eventhub

我看到很多论坛上都有人问这个问题,但没有一个能解决我的困惑。

该文档似乎表明偏移量和序列号在分区内都是唯一的。 https://learn.microsoft.com/en-us/dotnet/api/microsoft.servicebus.messaging.eventdata?view=azure-dotnet

很明显,序列号是一个按顺序递增的整数: https://social.msdn.microsoft.com/Forums/azure/en-US/acc25820-a28a-4da4-95ce-4139aac9bc44/sequence-number-vs-offset?forum=azureiothub#:~:text=SequenceNumber%20is%20the%20logical%20sequence,the%20Event%20Hub%20partition%20stream.&text=The%20sequence%20number%20can%20be,authority%20and%20not%20by%20clients .

但是偏移量又如何呢?它是仅在一个分区内唯一,还是在消费者组内的所有分区中唯一?如果是前一种情况,为什么有两个不同的变量?

最佳答案

偏移量是分区事件流中的相对位置。在当前的事件中心实现中,它表示从分区开头到给定事件中第一个字节的字节数。

在分区的上下文中,偏移量是唯一的。相同的偏移值可能会出现在其他分区中 - 不应将其视为在事件中心内全局唯一。

If it is the former condition, why have two different variables?

偏移量仅保证唯一标识分区内的事件。推断该值或它在不同事件之间的变化是不安全的。

另一方面,序列号遵循可预测的模式,其中编号在分区范围内是连续且唯一的。因此,在诸如“如果我想倒回 5 个事件,我将采用当前序列号并减去 5”之类的计算中使用它是安全的。

关于Azure 事件中心 : Offset vs Sequence number,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66284127/

相关文章:

c# - 如何模拟ServiceBusClient

go - 如何通过 AMQP 1.0 在 Azure Event Hub 中批量接收多条消息

Azure服务总线: How to achieve eventual consistency when a subscriber goes down

python - 使用 Python 使用来自 Azure 事件中心的消息?

azure - 配置 Google 域以指向 Azure 网站

sql-server - mssql特殊字符编码问题

azure 函数代理在 Linux 系统上不起作用

sql - 当 JSON 包含 sql 关键字时无法获取结果

azure-functions - 一个实例 Azure Function 如何处理多个分区事件中心触发器

c# - 如何使用 ServiceBus EventData 偏移值