Гарантия обработки сообщений в Кафке - PullRequest
0 голосов
/ 13 марта 2019

В системах обмена сообщениями типа Тема потребитель отвечает за сообщение о начальном смещении при подключении к теме.

В ситуации, когда потребитель отключен, и 3 новых сообщения публикуются по теме. Когда потребитель выходит в сеть, он не будет читать эти 3 сообщения. Только когда в теме будет опубликовано 4 сообщения, оно будет прочитано потребителем

Как мне убедиться, что все сообщения, относящиеся к теме, были обработаны?

Ответы [ 3 ]

0 голосов
/ 14 марта 2019

Для этого вы должны использовать группы потребителей. При использовании групп потребителей сервер Kafka управляет последним смещением, зафиксированным для группы. Затем, в следующий раз, когда вы подключитесь к серверу Kafka, он найдет последнее зафиксированное смещение и поместит потребителя в эту позицию. Альтернативой этому может быть сохранение ваших последних смещений во внешнем хранилище данных (KV / RDBMS) и поиск их при запуске приложения. Затем вы можете указать смещение для поиска после подключения к брокеру Kafka. https://www.confluent.io/blog/tutorial-getting-started-with-the-new-apache-kafka-0-9-consumer-client/

0 голосов
/ 15 марта 2019

Вам просто нужно прочитать это сообщение

Спасибо

0 голосов
/ 13 марта 2019

Нам нужно указать значение свойства auto.offset.reset в следующем случае.

Если ваш потребитель читал из раздела в первый раз, и он вылетал до фиксации смещения.

auto.offset.reset можно установить на одно из следующих значений.

самое раннее : автоматически сбрасывает смещение на самое раннее смещение

самое последнее : автоматически сбрасывает смещение к последнему смещению

Если потребитель успешно передал смещение до сбоя, то после его восстановления он начнет считывание с последнего смещения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...