如何使用camel-kafka提交偏移线程安全?

时间:2019-06-22 15:40:39

标签: apache-kafka apache-camel

按照问题How to manually control the offset commit with camel-kafka?的要求,我想使用camel-kafka手动提交偏移量。我的路线:

.from(kafka:topic1)
 .aggregate(new GroupByExchangeStrategy())
.to(kafka:topic2)
 .process(new ManualCommitProcessor())

,其中ManualCommitProcessor在将消息发送到另一个主题后将做出承诺。

问题是聚合器和kafka生产者在与kafka消费者分离的线程中工作,后者负责抵消承诺。因此,我以

结尾
java.util.ConcurrentModificationException: KafkaConsumer is not safe for multi-threaded access

是否有可能在聚合并分派提交偏移量后再次调用使用者线程?

1 个答案:

答案 0 :(得分:0)

这是不可能的,使用者线程独立于聚合器的输出运行。