Я использую клиентскую библиотеку .NET из Confluent.
Мне нужно подключиться к теме и прочитать последнее записанное сообщение.Я не могу использовать абсолютное смещение, потому что я его не знаю, и логические смещения не помогают.В частности, Offset.End
помещает курсор на после последней записи, следовательно, любой последующий вызов чтения (например, Consume
) вернет либо более новую запись, если она доступна, либо null
, но не последний доступный в самый момент вызова.
Мне действительно интересно, является ли это разумным вариантом использования на языке Кафки (я довольно новичок в этом).Я нашел несколько примеров подобных случаев, но ничто не объясняет этот случай, и я не могу найти хороший способ адаптировать эти другие случаи к моим.Я также пытался сделать некоторую арифметику с курсорами, например, суммировать / вычитать их (то есть Offset.End-1
или Offset.End-new Offset(1)
), но я получаю явно ненормальные курсоры, которые нельзя использовать.Что заставляет меня задуматься: почему +
и -
вообще были определены для Offset
, если тогда они позволяют вам создавать недопустимые значения?Но это другая история.