1.kafka中的broker是干什么的?
- 每个kafka的节点都称为一个broker,broker是消息的代理,Producers往Brokers里面的指定Topic中写消息,Consumers从Brokers里面拉取指定Topic的消息,然后进
- 行业务处理,broker在中间起到一个代理保存消息的中转站。
2.kafka中的zookeeper起到什么作用,可以不用zookeeper么?
- zookeeper是一个分布式的协调组件,早期版本的kafka用zk做meta元数据信息存储,consumer的消费状态,group的管理以及ofset的值。
- 考虑到zk本身的一些因素以及整个架构较大概率存在单点问题,新版本中逐渐弱化了zookeeper的作用。
- 新的consumer使用了kafka内部的group coordination协议,也减少了对zookeeper的依赖,
- 但是broker依然依赖于zK,zookeeper在kafka中还用来选举controller和检测broker是否存活等等。
3.kafka中follower的作用?
- 读写都是由leader处理,follower只是作备份数据功能,从leader那将数据同步过来进行备份,不对外提供服务。
提示
- 关于 broker:除了作为消息的中转存储节点,broker 之间是相互独立的,共同组成 Kafka 集群。每个 broker 会存储部分 topic 的分区数据,且通过集群机制实现负载均衡和高可用。同时,broker 还负责处理生产者的写入请求、消费者的读取请求,并与 ZooKeeper 协作作用于集群元数据的维护。
- 关于 ZooKeeper:虽然新版本 Kafka(如 2.8.0+)引入了 KRaft 模式,实现了不依赖 ZooKeeper 的部署(通过内置的控制器集群管理元数据),但在传统模式下,ZooKeeper 核心作用还包括:记录分区的 leader/follower 分配、维护 broker 集群的成员关系、存储 topic 的配置信息(如分区数、副本数等)。KRaft 模式的出现正是为了彻底摆脱对 ZooKeeper 的依赖,简化架构并提升稳定性。
- 关于 follower:除了备份数据,follower 还有一个关键作用:当 leader 节点故障时,follower 会通过选举成为新的 leader,从而保证分区的可用性。follower 持续从 leader 同步数据,只有当数据同步到一定程度(如 ISR 列表中的 follower),才具备成为新 leader 的资格,这确保了故障转移时的数据一致性。
本文作者:松轩(^U^)
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA
许可协议。转载请注明出处!