1

Сообщения будут храниться на Event Hub в течение определенного интервала времени. По истечении этого времени сообщения автоматически удаляются. Поскольку значения offset определяют положение события в partition, я смущен, если я получу то же самое offset value в следующий раз (после того, как данные истекут из раздела). Если да, то в чем разница между offset и событием sequence раздела?Можем ли мы получить дублирующее значение смещения при получении сообщений из azure-eventhub после того, как данные будут истекли из центра событий?

ответ

1

TLDR: вы никогда не получите такое же смещение - даже после того, как данные будут истекли с EventHubs.

Offset: это адрес (или указатель или курсор) вашего события на разделе EventHub. Вхождение в детали реализации, Смещение - это структура нашего Сервиса (базовое значение которого добавлено в 64 бита - для оптимизации - и, следовательно, c# long на клиенте) - представление адреса события в основной файловой системе нашей службы. Если вам нужно воспроизвести события раздела EventHub из определенной точки - вам понадобится смещение. Это именно то, для чего оно построено.

SequenceNumber: монотонно увеличивающееся число, присвоенное событию - для представления порядка событий. Его последовательные (лучшее усилие - могут быть незначительные прыжки) и могут использоваться для оценка (не точное число, только оценка) №. событий в разделе - путем запроса GetPartitionRuntimeInfo и разницы. между LastEnqueuedSeqNo. и BeginSeqNo.. Приемник может получить текущее принятое смещение (от EventData.Offset) - которое, если вы сравните с LastEnqueuedSeqNo., может дать - , насколько приемник отстает от - именно по этой причине это было построено.

HTH! Sree

Смежные вопросы