Kafka底层原理及面试题(三)

本文深入探讨Kafka的Leader和Follower角色,以及ISR、Controller的工作机制。Kafka中,Leader处理读写操作,Follower仅同步数据。选举分区Leader时,ISR内的成员才有资格。KafkaController负责管理分区和副本状态,避免过度依赖Zookeeper。同时,文章还涵盖了Kafka数据复制的时机、处理副本不同步的情况以及生产者和消费者的数据交互流程。

3. Kafka原理

3.1 Leader 和 Follower

​ 在Kafka中,每个topic都可以配置多个分区以及多个副本。每个分区都有一个leader以及0个或者多个follower。在创建topic时,Kafka会将每个分区的leader均匀地分配在每个broker上。我们正常使用Kafka是感觉不到leader、follower的存在的。

​ 但其实,所有的读写操作都是由leader处理的,而所有的follower都是复制leader的日志数据文件,如果leader出现故障时,follower就会选举为leader。

​ 所以说

  • Kafka中的leader负责读写操作,而follower只负责副本数据的同步。
  • 如果leader出现故障,其他follower会被重新选举为leader
  • follower像一个consumer一样,拉取leader对应分区的数据,并保存在日志数据文件中.

leader职责 读写数据

follower职责 同步数据、参与选举(leader crash之后,会选举一个follower重新成为分区的leader)

3.1.1 Kafka中的leader和follower 与zookeeper的区别

答:

  • zookeeper的leader负责读、写;follower可以读取,但不能写

  • Kafka的leader 负责读、写;follower不能读写数据,而是作为每个消费者消费的数据一致的。

  • Kafka的一个topic可以有多个分区,一样可以实现数据操作的负载均衡。

3.2 在kafka中ISR是什么?

在zk中会保存AR(Assigned Replicas)列表,其中包含了分区所有的副本,其中 AR = ISR+OSR

  • ISR(in sync replica):是kafka动态维护的一组同步副本,在ISR中有成员存活时,只有这个组的成员才可以成为leader,内部保存的为每次提交信息时必须同步的副本(acks = all时),每当leader挂掉时,在ISR集合中选举出一个follower作为leader提供服务,当ISR中的副本被认为坏掉的时候,会被踢出ISR,当重新跟上leader的消息数据时,重新进入ISR。可以理解为在follower集合中,有多少结点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值