如何分析Kafka中的reblance

发布时间:2021-12-09 15:30:33 作者:柒染
来源:亿速云 阅读:149

今天就跟大家聊聊有关如何分析Kafka中的reblance,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

Kafka常见的消费模式会以组进行组织,通常Kafa会将Topic的分区均匀的分配给同一个组下的不同实例,通常的策略有以下三种:

目前触发reblance主要有以下几种情况:

reblance generation

consumer group可以执行多次reblance,为了保护consumer group特别是防止无效的offset提交,reblance generation通常用来标识某次reblance,每经历一次reblance该值都会加1,默认值是从0开始。假如一个genertion值为1的consumer发生了延迟提交,但是reblance已经产生了新的group成员并且generation值已经变为了2,那么该conumse的提交将会被拒绝(ILLEGAL_EXCEPTION)。

reblance协议

Kafka会使用以下4组请求来完成reblance。

除了上面4组请求外,还有一个特殊的请求:

reblance过程中,coordinator需要接收来自consumer的JoinGroup和SyncGroup请求。当reblance成功以后,consumer定期向coordinator发送HeartBeat请求,consumer同时也会根据HeartBeat响应中是否包含REBLANCEINPROCESS来判断当前group是否开启了新一轮reblance。当consumer主动离组时,需要向coordinator发送LeaveGroup请求。

reblance流程

consumer reblance之前需要首先选定coordinator所在的broker(并且建立Socket连接),算法:

reblance主要分为两步进行:

  1. 加入组:组内的所有consumer向coordinator发送JoinGroup请求,当收集好所有的JoinGroup请求后,coorinator需要从中选一个group leader,并把所有成员信息以及他们的订阅信息发送给leader。

  2. 同步更新分配方案:group leader负责分配消费方案,具体策略有文章开头的三种。分配完成后,leader会将分配方案封装进SyncGroup请求然后发送给coordinator。在这一步中所有的consumer都会发送SyncGroup请求,只不过只有leader中包含了分配方案。coordinator收到请求后,将每个consumer的消费信息进行抽取然后作为SyncGroup的响应发送给对应的consumer。

看完上述内容,你们对如何分析Kafka中的reblance有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

推荐阅读:
  1. Kafka consumer Api的示例分析
  2. Kafka中时间轮TimingWheel的示例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

kafka

上一篇:Hadoop生态系统组件有哪些

下一篇:RedHat Linux上Hadoop集群环境WordCount的示例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》