码迷,mamicode.com
首页 > 其他好文 > 详细

kafka学习总结016 --- consumer配置参数session.timeout.ms和heartbeat.interval.ms

时间:2020-06-28 18:30:22      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:大于   一个   beat   interval   应用   topic   kafka   png   lazy   

前面说过了consumer心跳机制:consumer定期向coordinator发送心跳请求,以表明自己还在线;如果session.timeout.ms内未发送请求,coordinator认为其不可用,然后触发rebalance

session.timeout.ms:coordinator感知consumer崩溃所需时间,默认10秒

heartbeat.interval.ms:consumer发送心跳请求间隔,默认3秒

示例:topic1有2个分区,3个副本;三个消费者属于同一个组,并订阅该topic;

可以看到前两个消费者分别消费0号分区和1号分区,第三个消费者闲置;所以实际应用中,组内消费者的个数不要大于分区数,否则会造成资源浪费。

技术图片

 

 

技术图片

 

技术图片

 

把consumer3停掉,10秒后能够看到consumer1和consumer2,由于rebalance心跳失败,并且重新加入组

技术图片

 

技术图片

 

使用建议:

1、session.timeout.ms一定要大于heartbeat.interval.ms,否则消费者组会一直处于rebalance状态

2、session.timeout.ms最好几倍于heartbeat.interval.ms;这是因为如果因为某一时间段的网络延迟导致coordinator未感知到心跳请求,session.timeout.ms和heartbeat.interval.ms接近的话,会导致consumer组rebalance过于频繁,影响消费性能

 

kafka学习总结016 --- consumer配置参数session.timeout.ms和heartbeat.interval.ms

标签:大于   一个   beat   interval   应用   topic   kafka   png   lazy   

原文地址:https://www.cnblogs.com/sniffs/p/13204107.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!