大数据-kafka学习(三)——Kafka Broker

目录

一、Kafka Broker工作

1.1 、zookeeper中存储的kafka信息

1.2、broker总体工作流程

二、kafka副本

2.1、副本的基本信息

2.2、Leader选举流程

2.3、Leader 和 Follower 故障处理细节

1、Leader故障处理

2、Follower故障处理

一、Kafka Broker工作

1.1 、zookeeper中存储的kafka信息

在zookeeper的服务器端存储的Kafka相关信息:

  • /brokers/ids [0,1,2] 记录有哪些服务器
  • /brokers/topics/first/partitions/0/state    {"leader":1,"isr":[1,0,2]} 记录谁是Leader,有哪些服务器可用
  • /controller  {"brokerid":0}  辅助选举Leader

1.2、broker总体工作流程

二、kafka副本

2.1、副本的基本信息

  1. Kafka副本作用:提高数据可靠性
  2. Kafka默认副本1个,生产环境一般配置为2个,保证数据可靠性;太多副本会增加磁盘存储空间,增加网络上的传输,降低效率。
  3. Kafka中副本分为:Leader 和 Follower。Kafka生产者只会把数据发往Leader,然后Follower找Leader进行同步数据
  4. Kafka分区中的所有副本统称为AR(Assigned Repllicas)

        AR = ISR + OSR

        ISR:表示和Leader保持同步的Follower集合,如果Follower长时间未向Leader发送通信请求或者同步数据,则该Follower将被踢出ISR。该时间阈值由replica.lag.time.max.ms参数设定,,默认30s。Leader发生故障之后,就会从ISR中选举新的Leader。

        OSR:表示Follower与Leader副本同步时,延迟过多的副本。                 

2.2、Leader选举流程

        Kafka集群中有一个broker的Cntroller会被选举为Controller Leader,负责管理集群broker的上下线,所有topic的分区副本分配和Leader选举等工作。

        Controller的信息同步工作是依赖于Zookeeper的。

 选举规则:在ISR中存活为前提,按照AR中排在前面的优先。
        例如:AR【1,0,2】、ISR【1,0,2】,那么Leader就会按照【1,0,2】进行轮询产生 

2.3、Leader 和 Follower 故障处理细节

LEO(Log End Offset): 每个副本等最后一个offset,LEO其实就是最新的offset+1

HW(High Watermark) :所有副本中最小的LEO

1、Leader故障处理

  1.  Leader发生故障之后,会从ISR中选出一个新的Leader
  2. 为保证多个副本之间的数据一致性,其余的Follower会先将各自的log文件高于HW的部分截掉,然后从新的Leader同步数据。

        注意:这只能保证副本之间的数据一致性,并不能保证数据不丢失或者不充分

2、Follower故障处理

       

  1.  Follower发生故障后被临时踢出ISR
  2. 这个期间Leader 和Follower继续接收数据
  3. 待该Follower恢复后,Follower会读取本地磁盘记录的上次的HW,并将log文件高于HW的部分截取掉,从HW开始向Leader进行同步
  4. 等该Follower的LEO大于该Partition的HW,即Follower追上Leader之后,就可以重新加入ISR了。

  • 16
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机智兵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值