zookeeper作用_zookeeper 在kafka 中的作用

broker controller选举

  • zk中存放有broker 节点的配置信息和controller节点的配置信息
    使用zk命令 ls /brokers/ids

fd795a2800f5f42c3976429874d84437.png
  • zk会根据监听父节点的子节点列表来进行controller的选举
    *

ef32542da491561f3391919e8202d184.png

topic中partition信息的存储

使用 zk 命令 ls /brokers/topics/city/partitions ,get /brokers/topics/city/partitions/0/state

611351ba9f635a5ad811c9d6b322eac4.png
  • productor 生成消息的时候,首先通过broker controller 从zk 中读取所有的 partition leader 。返回给 porductor。

kakfa 0.9 版本之前 zk会进行partition leader选举存在的问题

将leader 的选举交给 zk 也就是交给第三方会存在脑裂问题。什么是脑裂?

以partittion leader 选举为例。当 ledader 和zk之间出现网络抖动,zk认为 leader挂掉的时候,会选举出一个新的leader。但是之前的leader 并没有宕机,也就是假死。这样就会有两个leader 。同时接受写请求的话,会造成数据不一致问题。

怎么解决leader的脑裂问题?当leader 选举出来后,稍微有个延迟,将新leader 的消息同步给原理的leader。原来leader 会变为follower。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值