我正在使用Spring-cloud-starter-stream-kafka-1.3.3和带有Spring Boot的spring-cloud-stream连接到Kafka,其中包括典型的Publisher Subscriber用例,在该用例中,我要enable.auto.commit是真的。
服务启动时,我可以看到在控制台上打印了一些Kafka属性(INFO日志),其中列出了所有已应用的属性。我看到此属性的值为false- enable.auto.commit = false,如belolw所示:
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上读到,如果我们不提供自动提交的属性,则默认情况下将其设置为true-
但是,当我启动该服务时,该值似乎仍然显示为假。
我尝试在application.properties中提供以下属性,但是仍然解析为false。
spring.cloud.stream.kafka.bindings.input.autoCommitOffset = true
有人知道我们如何获得真正的价值吗?
答案 0 :(得分:1)
spring.cloud.stream.kafka.bindings.input.autoCommitOffset = true
那是另一种性质;它告诉绑定程序在侦听器正常返回后提交偏移量。这比让客户端自己执行提交更具确定性。
活页夹始终重置enable.auto.commit
;您可以使用...binder.configuration
属性覆盖它,但不建议这样做。