我正在使用apache camel来集成我的kafka消息。此外,我正在使用JAVA DSL来消费来自kafka端点的消息。
使用apache kafka API已知如何使用给定的属性切换提交使用者偏移量。
如果我在camel-kafka组件中取消自动提交,那我怎么能在aplhe camel中提交偏移呢?
我使用下面的端点来禁用Apache Camel中的自动提交
kafka.consumer.uri = kafka://{{kafka.host}}?zookeeperHost={{zookeeper.host}}&zookeeperPort={{zookeeper.port}}&groupId={{kafka.consumerGroupId}}&topic={{kafka.topic.transformer_t}}&{{kafka.uri.options}}
kafka.uri.options = autoCommitEnable=false
答案 0 :(得分:0)
在CAMEL-11933中添加了对手动偏移提交的支持,自2.21.0版开始支持。您可以使用选项allowManualCommit=true启用它。此选项将显示标头CamelKafkaManualCommit
,其中包含KafkaManualCommit
的实例,然后您可以使用例如在Processor
中。
from("kafka:topic?groupId=group&autoCommitEnable=false&allowManualCommit=true")
//...
.process(exchange -> {
exchange.getIn().getHeader(KafkaConstants.MANUAL_COMMIT, KafkaManualCommit.class).commitSync();
});