kafka与zk的leader选举的混沌不清

在kafka中,同个topic下的partition分布在多个broker中,topic下的partitions使用zookeeper进行分布式协调,可以说kafka与zk是牢牢联系在一起的。但其中,都存在leader选举、主从复制、同步有效个数(zk是超过一半,kafka则是在isr列表中个数),在学习的初始造成一些混淆与困惑。

认清zookeeper的leader选举的内与外


一般书籍或者网络上提到zk的leader选举,指是的zk集群内部多台zk机器的选举。zk集群中多台机器都会存在全量数据,有且只有一台机器是zk集群的leader,负责zk集群的写入,事务提交等工作。但leader宕机时候,zk切换到leader选举模式(平时是数据同步,即进行数据复制模式),每台机器都根据zxid和serverId投票出新的leader。zk在cap理论模型中,支持的是ap,也即会存在不可用的风险,这也是被诟病作为服务治理配置中心的缺点。且客户端在连接的zk节点(客户端可以连接zk集群中任何一台机器,读的时候在连接的机器上进行,写的时候由连接的机器转发到leader进行)断开时候,客户端重连新的zk机器,也只会选择zxid不小于当前客户端缓存的机器。


集群管理是zk输出给外部的能力,如kafka的partitions副本使用zk提供的集群管理功能,达到多个partition副本间能进行leader选举。外部的机器在kafka中的体现就是一个目录下的多个znode节点,如下图所示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值