Невозможно установить для autoCommitOffset значение true, используя потоки облачной кафки - PullRequest
0 голосов
/ 04 апреля 2019

Я использую Spring-Cloud-Starter-Stream-Kafka - 1.3.3 и Spring-Cloud-Stream с Spring Boot для подключения к Kafka, который включает в себя типичный вариант использования подписчика Publisher, в котором я хочу, чтобы enable.auto.commit быть правдой.

Когда служба запускается, я вижу несколько свойств Kafka (журналов INFO), печатаемых на консоли, где перечислены все примененные свойства. Я вижу значение этого свойства как false- enable.auto.commit = false, как показано ниже:

auto.commit.interval.ms = 100
enable.auto.commit = false
auto.offset.reset = earliest
check.crcs = true
client.id = consumer-2
connections.max.idle.ms = 540000
    exclude.internal.topics = true
fetch.max.bytes = 52428800
fetch.max.wait.ms = 500
fetch.min.bytes = 1
group.id = conn-dr-group
heartbeat.interval.ms = 3000

Я читал в Spring Doc, что, если мы не предоставляем свойство автоматической фиксации, по умолчанию оно устанавливается равным -

https://docs.spring.io/autorepo/docs/spring-cloud-stream-binder-kafka-docs/1.1.0.M1/reference/htmlsingle/

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

Я попытался указать следующее свойство в application.properties, но все равно оно разрешается в false.

spring.cloud.stream.kafka.bindings.input.autoCommitOffset = истина

Кто-нибудь знает, как мы можем получить истинное значение?

1 Ответ

1 голос
/ 04 апреля 2019

spring.cloud.stream.kafka.bindings.input.autoCommitOffset = истина

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

Связыватель всегда сбрасывается enable.auto.commit; Вы можете переопределить его, используя свойство ...binder.configuration, но это не рекомендуется.

...