如何使用Camel-kafka提交消费者抵消?

时间:2015-09-21 10:18:12

标签: java apache-camel

我正在使用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

1 个答案:

答案 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();
  });