У меня есть сервер, который должен хранить в памяти кеш всех пользователей. Итак, предполагая, что список не будет большим - пара сотен тысяч элементов, я хотел бы использовать тему Kafka с сообщениями с ключами, где ключ - это идентификатор пользователя, чтобы сохранить текущее состояние этого списка, и приложение администратора отправит новый пользовательский объект в ту тему, когда что-то изменилось. Поэтому, когда сервер запускается, ему просто нужно прочитать все из этой темы с самого начала и заполнить его кеш.
Фаза заполнения занимает около 20-30 секунд в зависимости от подключения к Kafka, поэтому серверу не нужно подключаться к сети, пока он не прочитает все из темы, чтобы иметь актуальный кеш (все сообщения в теме на момент запуска считается современным). Но я не понимаю, как определить, прочитал ли я все из потока Kafka, чтобы уведомить другие службы о том, что кеш заполнен, и сервер может запускать серверные запросы. Я читал о высоком водяном знаке, но не вижу его в потребительском API Java.
Итак, как узнать последнее смещение темы Kafka, чтобы знать, когда мой читатель обновлен?