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

相关推荐
Jack_David1 小时前
Kafka批量消息发送
java·分布式·kafka
wanhengidc2 小时前
服务器托管对企业的作用
大数据·运维·服务器·分布式·智能手机
Code知行合壹2 小时前
Spark使用总结
大数据·分布式·spark
Swift社区2 小时前
分布式能力不是功能,而是一种架构约束
分布式·架构
0xDevNull3 小时前
Apache Kafka 完全指南
分布式·kafka
人间打气筒(Ada)3 小时前
go实战案例:如何基于 Conul 给微服务添加服务注册与发现?
开发语言·微服务·zookeeper·golang·kubernetes·etcd·consul
zb200641204 小时前
RabbitMQ 客户端 连接、发送、接收处理消息
分布式·rabbitmq·ruby
半桶水专家4 小时前
Kafka JMX详解
分布式·kafka
渔民小镇5 小时前
告别 if-else 地狱 —— JSR380 参数验证在 ionet 中的应用
java·服务器·分布式·游戏
智慧科技的海洋5 小时前
微电网智慧平台:破解能源困局的分布式能源革命
分布式·能源