zookeeper选举kafka集群的controller

zookeeper选举kafka集群的controller目录


文章目录


前言

kafka集群的controller是kafka集群中一个有特殊作用的broker,负责整个kafka集群的

具体来说,Controller Broker的作用包括:

1‌.主题管理‌:Controller负责创建、删除主题以及增加主题的分区。当使用kafka-topics.sh脚本进行这些操作时,大部分后台工作由Controller完成‌1。

2‌.分区重分配‌:通过kafka-reassign-partitions.sh脚本对主题的分区进行细粒度的分配和管理。这有助于优化分区的分布,提高集群的性能和稳定性‌1。

‌3.Preferred领导者选举‌:为了避免某些Broker过载,Controller负责选举新的Leader副本,确保负载均衡‌1。

‌集群成员管理‌:包括新增Broker、Broker的主动或被动关闭等。当Broker宕机时,4.Controller会感知并处理相应的下线工作,保证集群的稳定性‌1。

‌数据服务‌:Controller存放最全的集群元数据信息,其他Broker会定期接收Controller的更新请求,刷新其元数据缓存,保证数据的一致性和最新状态‌2。

Kafka集群中的Controller Broker通过上述功能,确保了集群的高可用性、数据的一致性和系统的稳定性。


一、实操体验controller的选举

先按照这篇启动kafka集群
kafka-windows集群部署

启动之后 打开zookeeper可视化工具PrettyZoo


这时候看到成功启动zookeeper之后 下面的znode节点

开始启动kafka
kafka-windows集群部署

启动了一个kafka的broker1之后,znode出现了一个临时节点controller 并且显示id是1,

说明当前的broker已经被选为controller

继续启动broker2,broker3

此时出现了三个id

但是controller仍然是broker1

二、模拟controller选举

假设我们关闭broker1

集群的broker都会参与controller的选举,被选举成功的,就接替旧的controller成为新的controller

继续关闭broker2呢?

剩下的节点会继续竞争,此时就剩下了broker3一个节点

四、删除controller节点

同样集群会马上监听到变化,马上继续选举出controller

相关推荐
黄焖鸡能干四碗36 分钟前
企业元数据梳理和元数据管理方案(PPT方案)
大数据·运维·网络·分布式·spark
木心术139 分钟前
大数据处理技术:Hadoop与Spark核心原理解析
大数据·hadoop·分布式·spark
小夏子_riotous10 小时前
Docker学习路径——2、安装
linux·运维·分布式·学习·docker·容器·云计算
lhbian12 小时前
PHP、C++和C语言对比:哪个更适合你?
android·数据库·spring boot·mysql·kafka
Jackyzhe15 小时前
从零学习Kafka:认证机制
分布式·学习·kafka
lhbian16 小时前
PHP vs Java vs Go:编程语言终极对比
java·spring boot·后端·kafka·linq
java修仙传16 小时前
从手写 Redis 锁到 Redisson:我对分布式锁安全性的理解
java·数据库·redis·分布式
AutoMQ16 小时前
别再每月浪费数千美元:拆解 AWS/GCP Kafka 背后的隐性账单
kafka·消息队列·aws
juniperhan19 小时前
Flink 系列第10篇:Flink 分布式缓存详解
分布式·缓存·flink
Devin~Y19 小时前
大厂Java面试实战:Spring Boot/WebFlux、Redis+Kafka、K8s可观测性与Spring AI RAG/Agent三轮连环问
java·spring boot·redis·kafka·kubernetes·resilience4j·spring webflux