kafka监听topic消费_某大厂面试官问:什么情况下kafka会发生重平衡?

kafka重平衡发生在kafka的消费组内。众所周知,kafka消费组会包含一个或者多个消费者实例,这些实例共享一个Group-Id;

consumer group下订阅的topic下的每个分区只能分配给某个group下的一个consumer(当然该分区还可以被分配给其他group)。

重平衡指的是一种协议,一个消费者组下的消费者平均分配订阅topic下的分区。很多人会想,使用kafka的时候对提前把consumer消费的topic指定好。而消费组的rebalance 只针对的是topic下的partiction。

那什么时候回发生rebalance?

topic下的分区发生变化的时候,kafka中的分区应该只能新增。

组内的consumer发送变化的时候。kafka会有心跳机制来监听每个consumer的状态

rebalance 是怎么进行的呢?

kafka会存在一个协调者的角色。用来存储消费组的内部消费者的元数据。

发生重平衡的时候,每个消费者会向协调者报告自己要消费的topic,协调者会为每个消费者分配消费的分区。发生重平衡的时候,消费者无法从kafka获取数据,对kafka的TPS会有一定的影响。

rebalance 策略

Range ,平均分配策略。这种分配是基于每个主题的分区分配,topic内的分区平均分配给consumer。

RoundRobin 轮询。这种分配是基于全部主题的分区分配,多个topic内的分区平均分配给consumer。

线上环境应该尽量减少重平衡的发生。。session.timout.ms控制心跳超时时间,heartbeat.interval.ms,控制发送心跳的频率

89b83aca5c1a35797c78e6d54b19ae1b.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值