Kafka学习笔记-客户端实践及原理剖析18-20

学习极客时间 《Kafka核心技术与实战》笔记-客户端实践及原理剖析15-17

原极客时间连接:https://time.geekbang.org/column/intro/191?utm_campaign=guanwang&utm_source=baidu-ad&utm_medium=ppzq-pc&utm_content=title&utm_term=baidu-ad-ppzq-title

位移提交

定义:Consumer需要向Kafka汇报自己的位移数据,这个汇报过程被称为提交位移。
提交颗粒度:在分区上进行提交
作用:提交位移主要是为了表征Consumer的消费进度,出现故障重启可读取之前的提交位移值,继续从此位移继续消费,从而避免整个消费重来一遍。

  • 位移提交的语义保障由自己负责,Kafka无脑执行;错误的提交将导致消息的丢失
    如果你Consumer消费了10条消息,但是提交位移值时却是20,那么11~19之前的消息可能丢失;
    相反你提交位移值5,那么介于5~9之间的消息可能被重复消费。

  • 位移提交分为主动提交和手动提交(用户角度)
    自动提交: Consumer端参数 enable.auto.commit = true(默认true自动提交)
    auto.commit.interval.ms 提交周期,默认5秒,每5秒提交一次位移。
    自动提交虽然可以保证消息不丢失,但是可能存在重复消费问题(Rebalance情况下)。

    示例代码:


Properties props = new Properties();
     props.put("bootstrap.servers", "localhost:9092");
     props.put("group.id", "test");
     props.put("enable.auto.commi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值