Kafka入门之consumer--rebalance流程

重平衡(rebalance)
旧版本Kafka依托于Zk进行rebalance,新版本consumer使用了Kafka内置的一个全新的组协调协议。对于每个组而言,Kafka的某个broker会被选举为组协调者(coordinator)。
触发条件:
1.组成员发生变更。
2.组订阅topic数发生变更。比如使用基于正则表达式的订阅,当匹配正则表达式的新topic被创建时则会触发rebalance
3.组订阅topic的分区数发生变更。比如使用命令行脚本增加了订阅topic的分区数。
分区策略:
range,round-robin,sticky策略
rebalance generation:
表示rebalance之后的一届成员,在consumer中它是一个整数,从0开始。主要是为了保护consumer group,特别是防止无效的offset提交,比如上一届的consumer成员由于某些原因延迟提交了offset,但rebalance之后该group产生了新一届group成员,而这次新延迟的offset提交携带的是旧generation信息,因此这次提交会被consumer group拒绝。
rebalance协议:
JoinGroup请求:consumer请求加入组
SyncGroup请求:group leader把分配方案同步到组内所有成员中
Heartbeat请求:consumer定期向coordinator汇报心跳表明自己依然存活
LeaveGroup请求:consumer主动通知coordinator该conumer即将离组。
DescribeGroup请求:供管理员使用,查看组的所有信息,包括成员信息,协议信息,分配方案以及订阅信息等
在成功rebalance之后,组内所有consumer都需要定期向coordinator发送Heartbeat请求,而每个consumer也是根据Heartbeat请求的响应中是否包含REBALANCE_IN_PROGRESS来判断当前group是否开启了新一轮rebalance
Kafka入门之consumer--rebalance流程的更多相关文章
- Kafka 0.8 Consumer Rebalance
1 Rebalance时机 0.10kafka的rebalance条件 条件1:有新的consumer加入 条件2:旧的consumer挂了 条件3:coordinator挂了,集群选举出新的coor ...
- Kafka入门之consumer
offset存放在_consumer_offsets这个topic下 并且从0-49划分了50个分区: consumer会在kafka集群的所有broker中选择一个broker作为consumer ...
- kafka系列之(3)——Coordinator与offset管理和Consumer Rebalance
from:http://www.jianshu.com/p/5aa8776868bb kafka系列之(3)——Coordinator与offset管理和Consumer Rebalance 时之结绳 ...
- Kafka 0.8 Consumer设计解析
摘要 本文主要介绍了Kafka High Level Consumer,Consumer Group,Consumer Rebalance,Low Level Consumer实现的语义,以及适用场景 ...
- Kafka设计解析(十三)Kafka消费组(consumer group)
转载自 huxihx,原文链接 Kafka消费组(consumer group) 一直以来都想写一点关于kafka consumer的东西,特别是关于新版consumer的中文资料很少.最近Kafka ...
- Kafka 0.8 Consumer处理逻辑
0.前言 客户端用法: kafka.javaapi.consumer.ConsumerConnector consumer = kafka.consumer.Consumer.createJavaCo ...
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行"随机读写"的原因是什么? 3.kafka集群consumer和producer状 ...
- 【Kafka入门】Kafka基础结构和知识
基本概念的总结 在基本的Kafka架构中,producer将消息发布到Kafka话题中,一个Kafka话题通常指消息的类别或者名称,Kafka话题被集群中一个充当Kafka server角色的 bro ...
- kafka 入门笔记 #1
kafka 入门笔记(#1) 单机测试 下载版本,解压 tar -xzf kafka_2.11-0.10.1.1.tgz cd kafka_2.11-0.10.1.1 启动服务 Kafka用到了Zoo ...
- Kafka入门介绍
1. Kafka入门介绍 1.1 Apache Kafka是一个分布式的流平台.这到底意味着什么? 我们认为,一个流平台具有三个关键能力: ① 发布和订阅消息.在这方面,它类似一个消息队列或企业消息系 ...
随机推荐
- 牛客1029A 袜子分配
题面传送门 没学过数论的蒟蒻第一次做出数学题, 这是一种乱搞的复杂做法 先来看个简单的问题, 数字1-10取1个,问包含1的方案有多少种.显然,每一个数字取到的概率是同样的, 方案数为 , su ...
- C# 实现十六进制Unicode编码字符串转换为汉字
网上找了几个方法,但是运行之后会报错,提示要解析的字符串格式不正确.然后我猜想可能是传入的字符串 \u60a8\u4eca\u65e5\u5df2\u7b7e\u5230 中带"\" ...
- 【Azure 环境】存储在Azure上的文件,使用IE/Edge时自动打开的问题,如何变为下载而非自动打开
问题描述 存储,作为云服务最重要的一部分.当需要从云存储中下载文件时,时常面临一些格式的文件被浏览器自动打开而非下载,那如何来解决这个问题呢? 在Azure中,存储的服务有以下方式: Azure Bl ...
- CF777E Hanoi Factory
DP单调栈优化 看到这道题可以很自然的想到DP 设$dp[i]$表示最后一个$ring$为$i$的最大高度 首先将$b$为第一关键字,$a$为第二关键字,升序排序元素 那么对于$i$来说,它下面的$r ...
- iNeuOS工业互联平台,WEB组态(iNeuView)增加工程视图导入、导出功能,及优化和修复,发布:v3.2.1版本
目 录 1. 概述... 2 2. 平台演示... 2 3. 导出组态工程文件... 2 4. 导入组态工程文件... 3 1. 概述 iNe ...
- npm--npm+gulp发布至私服,报错E503解决方案
由于项目共享组件库的需要,我们搭建了npm私有服务器,供本公司几个项目可以访问.组件库使用gulp+webpack+npm进行打包构建,私服使用的是 Verdaccio直接搭建的,一键式傻瓜搭建,贼好 ...
- Dreamweaver是怎么把图片转换成代码 简单五步骤即可解决
Dreamweaver图片转换代码图文介绍 1.打开需要转换的Photoshop作品: 2.保存为web格式,得到一个文件夹和一个html格式文件: 3.在html格式文件上单击右键,选择打开方式为D ...
- JavaScript中.、[]与setAttribute()在设置属性上的区别
.和[] javaScript.和[]既可以对所有js对象设置属性,但是对于DOM对象它设置的属性有些特殊.对于元素DOM标准属性,实现属性值的设置/更改;对于元素DOM非标准属性,仅在js中有效,在 ...
- ISO/OSI参考模型
ISO/OSI参考模型: 1.应用层:提供应用程序间通信.应用层与应用程序界面沟通,以达到展示给用户的目的.常见的协议:HTTP.HTTPS.FTP.TELNET.SSH.SMTP等 2.表示层:处理 ...
- python pip install指定国内源镜像
有时候安装一些依赖包,网不好,直接超时,或者这个包就是死都下不下来的时候,可以指定国内源镜像. pip install -i 国内镜像地址 包名 e.g. pip install -i http:/ ...