Если у меня есть пустая тема с одним разделом (и одной репликой), и я запрашиваю низкие / высокие водяные знаки, она возвращается в 0/0. Если у меня есть одно сообщение в разделе, оно возвращается в 0/1. Но чтобы получить последнее (и единственное сообщение), я должен начать чтение с 0. В частности, моему приложению при запуске необходимо прочитать последнее (последнее написанное) сообщение в разделе. Поэтому я использую этот код:
consumer.Assign(new[] { new TopicPartitionOffset(topicPartition, new Offset(last - 1)) });
, когда последнее смещение> 0. (last - возвращаемое значение для верхнего водяного знака)
Кажется, это работает, но, похоже, не соответствует документам, которые я прочитал, которые указывают, что верхний водяной знак является смещением последнего реплицированного сообщения. Судя по моим экспериментам, кажется, что он выше. Я что-то здесь упускаю?