Apache Camel Kafka - LAST_RECORD_BEFORE_COMMIT 与 LAST_POLL_RECORD

问题描述 投票:0回答:0

我正在 Camel 和 Kafka 中实现手动事务处理。例如,我有 3 个 Kafka 消费者,有 3 个子路由,如下图所示:

这3条子路线包含代码如下:

Boolean lastOne = exchange.getIn().getHeader(KafkaConstants.LAST_RECORD_BEFORE_COMMIT, Boolean.class);
        if (Boolean.TRUE.equals(lastOne)) {
    //write into the database
        }

它会导致消息丢失,因为在“if”语句中还存在对数据库的提交。这是否意味着 Kafka 消费者中对 LAST_RECORD_BEFORE_COMMIT 的检查必须高一级?或者我应该使用LAST_POLL_RECORD?

apache-kafka apache-camel
© www.soinside.com 2019 - 2024. All rights reserved.