【Kafka】Kafka的Rebalance机制可能造成的影响及解决方案

zz/2024/6/24 9:44:08

一、kafka的rebalance机制
在Kafka中,当有新消费者加入或者订阅的Topic数发生变化时,会触发Rebalance(再均衡:在同一个消费者组当中,分区的所有权从一个消费者转移到另外一个消费者)机制,Rebalance顾名思义就是重新均衡消费者消费。Rebalance的过程如下:

第一步:所有消费成员都向Coordinator发送请求,请求入Consumer Group。一旦所有成员都发送了请求,Coordinator会从中选择一个Consumer担任Leader的角色,并把组成员信息以及订阅信息发给Leader。
第二步:Leader开始分配消费方案,指明具体哪个Consumer负责消费哪些Topic的哪些Partition。一旦完成分配,leader会将这个方案发给Coordinator。Coordinator接收到分配方案之后会把方案发给各个Consumer,这样组内的所有成员就都知道自己应该消费哪些分区了。
所以对于Rebalance来说,Coordinator起着至关重要的作用

二、rebalance可能发生的时机
1、分区个数的增加

2、对Topic的订阅发生变化

3、消费组成员的加入或离开(这个是我们最常遇到)

三、rebalance的影响
Rebalance对我们数据的影响主要有以下几点:

1、可能重复消费: Consumer被踢出消费组,可能还没有提交offset,Rebalance时会Partition重新分配其它Consumer,会造成重复消费,虽有幂等操作但耗费消费资源,亦增加集群压力

2、集群不稳定:Rebalance扩散到整个ConsumerGroup的所有消费者,因为一个消费者的退出,导致整个Group进行了Rebalance,并在一个比较慢的时间内达到稳定状态,影响面较大

3、影响消费速度:频繁的Rebalance反而降低了消息的消费速度,大部分时间都在重复消费和Rebalance

四、避免rebalance措施
1、业务需要不可避免
(1)针对分区个数的增加, 一般不会常有,是需要增加的时候都是业务及数据需求,不可避免

(2)对Topic的订阅增加或取消亦不可避免

2、合理设置消费者参数
下边是我们遇到的,要格外关注及重视

(1)未能及时发送心跳而Rebalance

session.timeout.ms 一次session的连接超时时间

heartbeat.interval.ms 心跳时间,一般为超时时间的1/3,Consumer在被判定为死亡之前,能够发送至少 3 轮的心跳请求

(2)Consumer消费超时而Rebalance

max.poll.interval.ms 每隔多长时间去拉取消息。合理设置预期值,尽量但间隔时间消费者处理完业务逻辑,否则就会被coordinator判定为死亡,踢出Consumer Group,进行Rebalance

max.poll.records 一次从拉取出来的数据条数。根据消费业务处理耗费时长合理设置,如果每次max.poll.interval.ms 设置的时间较短,可以max.poll.records设置小点儿,少拉取些,这样不会超时。

总之,尽可能在max.poll.interval.ms时间间隔内处理完max.poll.records条消息,让Coordinator认为消费Consumer还活着


http://www.ngui.cc/zz/2389883.html

相关文章

第6章 Rebalance详解

rebalance本质是一种协议,规定了一个consumer group下的所有consumer如何达成一致来分配订阅的topic的每个分区。比如某个group下有20个consumer,它订阅了一个具有100个分区的topic。正常情况下,Kafka平均会为每个consumer分配5个分区。这个分…

电话机器人核心技术之NLP

什么是NLPNLP是神经语言程序学 (Neuro-Linguistic Programming) 的英文缩写; NLP译为“身心语法程式学”或“神经语言程序学”。N(Neuro)指神经系统,意译为身心。指我们比较稳定的身心素质,结构及比较逸动的身心状态。L&#xff0…

产品用户-缩写

tts : text to speech 语音合成 IVR:(Interactive Voice Response)即互动式语音应答,您只须用电话即可进入服务中心,可以根据操作提示收听手机娱乐产品,也可以根据用户输入的内容播放有关的信息。 CTI:一般指计算机电…

java 常用缩写简表_java 常用缩写

java EE -->Java Platform Enterprise Edition //平台企业版此版本中主要包括如下技术:EJB 3.0、Java Persistance Architecture (JPA)、Web 服务、JAX-WS。.包含J2SE 中的类,并且还包含用于开发企业级应用的类。比如:EJB、servlet、JS…

Android--控件的单位(px,pt,dp,sp)

px:代表像素,即在屏幕中可显示的最小单位元素,应用程序中任何控件都是由一个像素点组成的,分辨率越高的手机,屏幕的像素点就越多。因此,如果使用px控制控件的大小,在分辨率不同的手机控件显示的…

web前端常用长度单位(px,em,rem,pt)

px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。 em是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸,最初是指字母M的宽度&…

css font size 单位,css中font-size的单位总结:px、em、pt

px:基于像素的单位.像素是一种有用的单位,因为在任何媒体上都可以保证一个像素的差别确实是可见的.em :一般用来测量长度的通用单位(例如元素周转的页边空白和填充),当用于指定字体大小时,em单位是指父元素的字体大小.比如这里的字是24px如果使用em来指定填充,填充的宽度是相对…

探究px像素与pt磅,mm毫米之间的换算

文章目录DPI(dots per inch)dpcm(dots per centimeter)dppx(dots per px 别名为:x)px像素(Pixel)emrem (font size of the root element)in英寸(Inch)pt磅(Point)mm毫米(Millimeter)cm厘米(Centimeter)pt与px换算公式m…

C语言数组元素的左移、右移

想到数组元素的移动&#xff0c;我最初的想法是这样的。 贴代码&#xff1a; for(i 0; i < it_Length - it_Steps; i){if(it_Direction -1){Array[i] pt_Array[i it_Steps];}else{Array[i it_Steps] pt_Array[i];}}for(i 0; i < it_Steps; i){if(it_Direction -…

页面适配之pt、px、em、rem用法和特点

因为自己也经常做移动端的开发工作&#xff0c;现总结一份页面适配的笔记。 1. pt 点&#xff08;Points&#xff09;&#xff0c;绝对长度单位。 印刷业上常使用的单位&#xff0c;磅的意思&#xff0c;一般用于页面打印排版。 不知道经常做设计的同学知不知道zeplin这个网…