参考

https://www.jianshu.com/p/a036405f989c 

zk与kafka的基本交互关系

1,kafaka集群的 broker,和 Consumer 都需要连接 Zookeeper。Producer 直接连接 Broker。

2,Producer 把数据上传到 Broker,Producer可以指定数据有几个分区、几个备份。上面的图中,数据有两个分区 0、1,每个分区都有自己的副本:0'、 1'。

3,leader 处理 partition 的所有读写请求,与此同时,follower会被动定期地去复制leader上的数据。

4,如果leader发生故障或挂掉,一个新leader被选举并接收客户端的消息。Kafka确保从同步副本列表中选举一个副本为 leader。

5,Topic 分区被放在不同的 Broker 中,保证 Producer 和 Consumer 错开访问 Broker,避免访问单个 Broker造成过度的IO压力,使得负载均衡。

 

zk在kafka中的作用

Broker注册

Topic注册

消费者注册

生产者负载均衡

消费者负载均衡

分区 与 消费者 的关系

消息 消费进度Offset 记录