1. 副本(Replication)
- 副本因子:当创建一个Kafka Topic时,可以指定副本因子,这个因子决定了每个分区会有多少个副本存储在不同的broker上。
- 数据复制:数据被写入leader分区后,follower分区会从leader同步数据。只要副本数量大于1,即使发生单点故障,数据也不会丢失。
2. 领导者和追随者(Leader and Followers)
- 读写操作:所有对分区的读写操作都是通过领导者进行的。追随者副本不直接处理客户端请求,它们从领导者那里复制数据。
- 故障转移:如果领导者副本失败,追随者中的一个将会被提升为新的领导者,以此来保持服务的可用性。
3. Zookeeper
- 集群元数据管理:Kafka使用Zookeeper来维护集群的状态,保存关于topics、brokers、消费者组等的元数据信息。
- 领导者选举:当领导者副本失效时,Zookeeper负责协调新的领导者副本的选举。
4. 控制器(Controller)
- 集群管理:控制器是集群中的一个特殊broker,它负责管理分区的领导者选举以及在broker加入或离开时的分区分配。
- 故障响应:控制器监控集群中broker的