#apache-kafka
#apache-kafka
Вопрос:
В системах обмена сообщениями типатемы потребитель отвечает за сообщение о начальном смещении при подключении к теме.
В ситуации, когда пользователь отключен, и по теме опубликовано 3 новых сообщения. Когда потребитель выходит в Интернет, он не будет читать эти 3 сообщения. Только когда в теме будет опубликовано 4 сообщения, оно будет прочитано потребляемым
Как мне убедиться, что все сообщения, относящиеся к теме, были обработаны?
Ответ №1:
Для этого следует использовать группы потребителей. При использовании групп потребителей сервер Kafka управляет последним смещением, зафиксированным для группы. Затем, при следующем подключении к серверу Kafka, он выполнит поиск последнего зафиксированного смещения и поместит потребителя в эту позицию. Альтернативой этому было бы сохранить ваши последние смещения во внешнем хранилище данных (KV / RDBMS) и просмотреть их при запуске приложения. Затем вы можете указать смещение для поиска после подключения к брокеру kafka. https://www.confluent.io/blog/tutorial-getting-started-with-the-new-apache-kafka-0-9-consumer-client/
Ответ №2:
Вам просто нужно прочитать этот пост
Спасибо
Ответ №3:
Нам нужно указать значение свойства auto.offset.reset
в следующем случае.
Если ваш потребитель читал из раздела в первый раз, и произошел сбой перед фиксацией смещения.
auto.offset.reset
может быть установлена на любую из них, как указано ниже.
самое раннее: автоматически сбрасывает смещение на самое раннее смещение
последняя версия: автоматически сбрасывает смещение до последнего смещения
Если пользователь успешно зафиксировал смещение до сбоя, то, как только оно оживет, оно начнет чтение с последнего зафиксированного смещения.
Комментарии:
1. Я настроил его на запуск с самого начала через мою библиотеку, но я еще не получал события
2. Я объяснил теги Apache Kafka. Я думаю, для этого вам нужно заглянуть в определения вашего поставщика API.