Будет ли потребитель Spring-cloud-stream Kafka не использовать сообщения, отправленные при отключении сервиса? - PullRequest
0 голосов
/ 06 марта 2019

У меня есть весенний облачный поток Kafka, где подтверждение выполняется вручную. Предоставляется фиксированная группа потребителей.

spring.cloud.stream.bindings.input.group = sampleconsumergroup

свойства resetoffsets и startOffset устанавливаются, как показано ниже spring.cloud.stream.kafka.bindings.input.consumer.resetOffsets = верно spring.cloud.stream.kafka.bindings.input.consumer.startOffset = последняя

Служба поддержки пользователей прослушивает шаблон темы.

Сценарий: служба поддержки пользователей не работает, и в течение этого периода некоторые сообщения отправляются в ее тему. Когда служба поддержки пользователей возвращается, эти сообщения не используются. Используются только сообщения, отправленные после того, как он вернулся в сеть.

Это как и ожидалось? Я нахожусь в фазе изучения Кафки, и объяснение будет с благодарностью.

Ответы [ 2 ]

1 голос
/ 06 марта 2019

Вы явно указываете, что связыватель делает это с

spring.cloud.stream.kafka.bindings.input.consumer.resetOffsets=true 
spring.cloud.stream.kafka.bindings.input.consumer.startOffset=latest

просто удалите эти свойства; привязки с группами обычно обеспечивают желаемое поведение.

1 голос
/ 06 марта 2019

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

Свойство startOffSet имеет два параметра: самый ранний и последний. Эти параметры используются, когда потребитель запускается, но для назначенного раздела нет зафиксированного смещения.

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

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