我们来看kafka -- 控制器(故事版)

@TOC

东南一柱

控制器,管理各个broker上各个副本的状态,一个Leader副本就可以理解为主题的一个分区,分区是具体概念,副本是具体的实现(艹,说的是啥呀,bibibi的)

那么这里说的管理状态,管啥状态?
是这样的,先扯远些,先说控制器,控制器谁来当,是的,控制器不是独立在broker外的服务,也是broker,通过向zk发送请求,竞争得到的身份,好比你是班里的班长,但你也是学生,你的语文老师是你的班主任,也是其他班级的老师,就是这样。你挂了,哦不,你喜欢上班里一个女生,成绩跟不上了,这是次要的,主要的是你没那个精力帮老师买奶茶了,你退出后,老师还是想喝蜜雪冰城,然后其他同学竞选班长,这里就是说班长或控制器是竞选出来的。说回kafka各个broker节点,想当话事人的到zk报道,这一路也许千山万水,也许一马平川,赶到京城,拿到委任状升为东南一柱,是的,没有啥,都是一样能力,那就先到先得,没冤情【海瑞:阿嚏…!何人击鼓鸣冤?】。
在这里插入图片描述

开车

接下来我们来开车,哦,不,看别人开车,小明为了帮摔倒的老爷爷,不料缠上了官司,好在短短“一个学期”后他顺利反回了久违的校园,此时迫不及待的找班长报道,又不料一推门撞到羞羞的事情,小明目瞪口呆(瞪大了眼睛),那这里就是说他找错班长了,为啥!因为租住在这个房中的已经不是班长了。小明(broker)心里(内存)记的地址(epoch)是不对的了。

查看控制器

如何查看本机中的 Kafka 是Controller 还是普通的 Kafka Broker(Kafka 本身不需要我们去关心谁是主节点谁是从节点,无论是Kafka 3.0之前依赖 zk 的主从选举机制还是Kafka 3.0 之后它内部的主从选举机制,都会帮它完成这一点)

  • 运行 zkCli.sh 脚本
  • ls /查看当前 zookeeper 下所有的子节点
[zk: localhost:2181(CONNECTED) 1] ls /
[cluster, controller_epoch, controller, brokers, zookeeper, admin, isr_change_notification, consumers, log_dir_event_notification, latest_producer_id_block, config]
  • get /controller 命令来查看谁是 Kafka 的主节点
    brokerid 为0 的机器就是 Kafka 主节点
[zk: localhost:2181(CONNECTED) 4] get /controller
{"version":1,"brokerid":0,"timestamp":"1660444862682"}
cZxid = 0x50000003f
ctime = Sun Aug 14 10:41:02 CST 2022
mZxid = 0x50000003f
mtime = Sun Aug 14 10:41:02 CST 2022
pZxid = 0x50000003f
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x2829a1718820001
dataLength = 54
numChildren = 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值