- 一个kafka的集群通常由多个broker组成,这样才能实现负载均衡,以及容错。
- Broker是无状态sateless的,它们是通过zookeeper来维护集群状态。
- 一个kafka的broker每秒可以处理数十万次读写,每个broker都可以处理TB消息而不影响性能。
- Zk用于管理和协调broker,并且存储了kafka的元数据(例如有多少topic,partition、consumer)
- Zk服务主要用于通知生产者和消费者kafka集群中有新的broker加入,或者kafka集群中出现故障的broker。
Kafka逐步想办法将zookeeper剥离,维护两套集群成本比较高,社区提出KIP-500就是要替换掉zookeeper的依赖。Kafka on kafka——kafka自己来管理自己的元数据。