76.ZooKeeper 在 Kafka 中起到什么作用?
在基于 Kafka 的分布式消息队列中,ZooKeeper 的作用有:
1、Broker 在 ZooKeeper 中的注册。
2、Topic 在 ZooKeeper 中的注册。
3、Consumer 在 ZooKeeper 中的注册。
4、Producer 负载均衡。
主要指的是,Producer 从 Zookeeper 拉取 Topic 元数据,从而能够将消息发送负载均衡到对应 Topic 的分区中。
5、Consumer 负载均衡。
6、记录消费进度 Offset 。
Kafka 已推荐将 consumer 的 Offset 信息保存在 Kafka 内部的 Topic 中。
7、记录 Partition 与 Consumer 的关系。
其实,总结起来,就是两类功能:
Broker、Producer、Consumer 和 Zookeeper 的交互。
对应 1、2、3、5 。
相应的状态存储到 Zookeeper 中。
对应 4、6、7 。