美文网首页
Kafka 位移提交

Kafka 位移提交

作者: 阿猫阿狗Hakuna | 来源:发表于2019-08-22 16:55 被阅读0次

在Kafka中,Consumer端会记录要消费的下一条消息的位移。
Consumer需要向Kafka汇报自己的位移数据,这个汇报过程被称为提交位移(Committing Offsets)。因为Consumer能够同时消费多个分区的数据,所以位移的提交实际上是在分区粒度上进行的,即Consumer需要为分配给它的每个分区提交各自的位移数据。

KafkaConsumer API提供了多种提交位移的方法
从用户角度来说,位移提交分为自动提交和手动提交;从Consumer端的角度来说,位移提交分为同步提交和异步提交。

自动提交能保证不会出现数据丢失的情况吗?
如果设置为自动提交,Kafka会保证开始调用poll方法时,提交上次poll返回的所有消息。poll方法的逻辑是先提交上一批消息的位移,再处理下一批消息,因此能保证不出现消费丢失的情况。但是可能会出现重复消费

同步提交和异步提交
Kafka提供了KafkaConsumer#commitSync()方法,这是一个同步操作,会一直等待,直到位移被提交成功。
另一个KafkaConsumer#commitAsync()方法,是一个异步操作。

注意:异步提交并不能替代同步提交,因为在出现问题时它不会自动重试。
我们需要组合使用两种提交方式:

   try {
           while(true) {
                        ConsumerRecords<String, String> records = 
                                    consumer.poll(Duration.ofSeconds(1));
                        process(records); // 处理消息
                        commitAysnc(); // 使用异步提交规避阻塞
            }
} catch(Exception e) {
            handle(e); // 处理异常
} finally {
            try {
                        consumer.commitSync(); // 最后一次提交使用同步阻塞式提交
    } finally {
         consumer.close();
}
}

这样,即实现了异步无阻塞式的位移管理,也确保了Consumer位移的正确性。

相关文章

  • Kafka 位移提交

    在Kafka中,Consumer端会记录要消费的下一条消息的位移。Consumer需要向Kafka汇报自己的位移数...

  • kafka问题整理

    一、kafka高可用 二、数据丢失 1)消费端弄丢了数据 Kafka默认位移提交方式是自动提交,每隔5秒提交一次,...

  • Kafka中位移提交那些事儿

    本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等 之前我们说过,Consumer 端有个位...

  • Kafka Offset Topic

    Kafka中有一个位移主题:__consumer_offsets。老版本的Kafka将位移保存在Zookeeper...

  • 【输入输出】31周[0729-0804]

    输入 极客专栏《Kafka核心技术与实战》进度40%。知道了很多概念。Rebalance的注意点,位移提交的技巧。...

  • 遇到的问题集

    1 kafka consumer消费位移为什么从zookeeper改到kafka内部主题__consumer_of...

  • Kafka - 位移主题

    __consumer_offsets起源 __consumer_offsets 在 Kafka 源码中有个更为正式...

  • kafka marking the coordinator (i

    问题 flink kafka 设置自动offset 提交kafka-client 0.11.0.2kafka-br...

  • (6)哪些场景重复消费或丢失(2)

    概要:1、位移设置:定期自动提交、周期时间 2、消息丢失 3、手动提交:1)同步 2)异步 -------...

  • Kafka consumer的offset的提交方式

    Kafka consumer的offset提交机制有以下两种 手动提交 同步提交consumer.commitSy...

网友评论

      本文标题:Kafka 位移提交

      本文链接:https://www.haomeiwen.com/subject/xdfosctx.html