Гарантия обработки сообщений в Kafka

#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.