根据我对卡夫卡消费者的解读,我的理解是,如果我设置了这两个属性,那么在我的消费者推出时,我将永远从最早的抵消中消费
enable.auto.commit = false
auto.offset.reset = earliest虽然当我第一次启动我的应用程序时,这是可行的,但是下一次我重新启动它时不会从一开始就消耗它。
相反,我需要做的是将我的group.id更改为新的东西,然后它将从最早的偏移恢复。
还可能有其他的犯罪行为吗?
更新
在我看来,这是一个问题,骆驼卡夫卡组件,我正在使用。org.apache.camel.component.kafka.KafkaConsumer类具有以下逻辑
if (endpoint.isAutoCommitEnable() != null && !endpoint.isAutoCommitEnable()) {
if (processed >= endpoint.getBatchSize()) {
consumer.commitSync();
processed = 0;
}
}通过我的阅读,这看起来好像每次自动提交启用是假的,它就会提交偏移量。这是Camel Kafka组件的一个特性,即使启用了自动提交,它也会在x个消息数量之后同步。
发布于 2016-10-20 12:45:18
你的理解听起来是对的。
卡夫卡0.9既有“旧”也有“新”消费者吐露。此配置属性在它们之间发生了更改。
auto.commit.enable = false
enable.auto.commit = falsehttps://kafka.apache.org/documentation#consumerconfigs
在启动时,它也应该记录它的配置,所以在那里进行验证。
2016-10-06 14:19:41,725 INFO [org.apache.kafka.clients.consumer.ConsumerConfig:165] - ConsumerConfig values:
group.id = service
bootstrap.servers = [kafka:9092]
enable.auto.commit = false
auto.offset.reset = latesthttps://stackoverflow.com/questions/40142326
复制相似问题