查看“Kafka 集群中的 controller、rebalance、HW”的源代码
←
Kafka 集群中的 controller、rebalance、HW
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
https://www.bilibili.com/video/BV1Xy4y1G7zA?p=25 === 1.controller === * 集群中谁来充当 controller 每个 broker 启动时会向 ZK 创建一个临时序号节点,获得的序号最小的那个 broker 将会作为集群中的 controller,负责这么几件事: * 当集群中有一个副本的 leader 挂掉,需要在集群中选举出一个新的 leader,选举的规则是从 isr 集合中最左边获得。 * 当集群中有 broker 新增或减少,controller 会同步信息给其他 broker * 当集群中有分区新增或减少,controller 会同步信息给其他 broker === 2. rebalance 机制=== https://www.bilibili.com/video/BV1Xy4y1G7zA?p=26 *前提:消费组中的消费者没有指明分区来消费 *触发的条件:当消费组中的消费者和分区的关系发生变化的时候 *分区分配的策略:在 rebalance 之前,分区怎么分配会有这么三种策略 **range:根据公式计算得到每个消费者消费哪几个分区:前面的消费者是分区总数/消费者数量+1,之后的消费者是分区总数/消费者数量 **轮询:大家轮着来 **sticky:粘合策略,如果需要 rebalance,会在之前已分配的基础上调整,不会改变之前的分配情况,如果这个策略没有开,那么就要进行全部的重新分配。建议开启。 === 3. HW 和 LEO === https://www.bilibili.com/video/BV1Xy4y1G7zA?p=27 LEO 是某个副本最后消息的消息位置(log-end-offset) HW 是已完成同步的位置。消息在写入 broker 时,且每个 broker 完成这条消息的同步后,hw 才会变化。在这之前,消费者是消费不到这条消息的。在同步完成之后,HW 更新之后,消费者才能消费到这条消息,这样的目的是防止消息的丢失。 [[文件:HW 和 LEO.png|无|缩略图|1200x1200像素]]
返回至
Kafka 集群中的 controller、rebalance、HW
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
Spring Boot 2 零基础入门
Spring Cloud
Spring Boot
设计模式之禅
VUE
Vuex
Maven
算法
技能树
Wireshark
IntelliJ IDEA
ElasticSearch
VirtualBox
软考
正则表达式
程序员精讲
软件设计师精讲
初级程序员 历年真题
C
SQL
Java
FFmpeg
Redis
Kafka
MySQL
Spring
Docker
JMeter
Apache
Linux
Windows
Git
ZooKeeper
设计模式
Python
MyBatis
软件
数学
PHP
IntelliJ IDEA
CS基础知识
网络
项目
未分类
MediaWiki
镜像
问题
健身
国债
英语
烹饪
常见术语
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息