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

相关推荐
goTsHgo5 小时前
HBase中的Write-Ahead Log 详解
大数据·分布式·hbase
Java指南修炼5 小时前
一个为分布式环境设计的任务调度与重试平台,高灵活高效率,系统安全便捷,分布式重试杀器!(附源码)
分布式·架构·开源·源码·项目
小笨猪-7 小时前
Redis分布式锁
数据库·redis·分布式
一棵___大树9 小时前
【中间件】—一篇说明白API网关&常用API网关推荐
分布式·中间件
小笨猪-9 小时前
RabbitMQ概述
分布式·rabbitmq
weixin_5318042410 小时前
消息队列(如RabbitMQ、Kafka)的使用与原理。缓存系统(如Redis、Memcached)的使用与优化。
缓存·kafka·rabbitmq
vonlinee11 小时前
RabbitMQ 集群
分布式·rabbitmq
M_灵均11 小时前
Kafka相关知识
分布式·kafka
小笨猪-12 小时前
RabbitMQ安装(Ubuntu环境)
分布式·rabbitmq