Kafka Leader 和 Follower 故障

浩客2年前技术文章1602

前言:

      在kafka集群工作过程中,难免会碰到某个kafka服务实例宕机或挂掉的情况,服务一旦挂掉,意味着某个分区中的leader或follower将不能正常工作了

      具体来说,leader和follower出现故障时各自的处理细节是不同的,假设kafka集群中有3个服务实例,对应到ISR中存储的就是3个brokerid的信息,假如brokerid为0的服务是leader,其他两个是follower,在broker实际工作过程中,发往broker的数据在leader和follower上均维持着一个HW和LEO,从实际经验来看,由于leader对外提供读写服务,而follower同步leader的数据,所以follower的HW(高水位线)同步到的最后那个水位所在位置数要低于leader的HW,基于这种情况前提下,会造成当leader出现故障,以及follower出现故障时内部在数据同步上的两种不同的情况

ISR(In-Sync Replicas): (同步副本集),我们可以理解为和leader保持同步的所有副本的集合。

LEOLog End Offset):每个副本的最后一个offsetLEO其实就是最新的offset + 1

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


6666666666.png


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了。


相关文章

DRDS 整库恢复介绍

DRDS 整库恢复介绍

1 整库恢复注意事项1、PolarDB-X 1.0自动备份策略默认关闭,需要您手动开启。PolarDB-X 1.0日志备份能力依赖下层RDS,PolarDB-X1.0控制台设置的日志备份策略会自动同步...

Ranger-hase插件部署

Ranger-hase插件部署

解压插件tar -zxf  ranger-2.3.0-hbase-plugin.tar.gz -C /opt修改配置vi install.properties 内容如下:POLICY_MGR_URL=...

CDH实操--Zookeeper角色迁移

CDH实操--Zookeeper角色迁移

Zookeeper角色迁移计划1.集群Zookeeper服务角色实例分配情况2.由于角色规划不合理,需要将cdp1.hadoop.com节点的Zookeeper实例实例迁移到cdp4.hadoop.c...

静默安装oracle软件参数文件解析

文件位置在oracle软件解压目录下的database/response/db_install.rsp,主要参数解析如下########################################...

MySQL运维实战之元数据和数据字典

什么是元数据假设我们执行一个简单的SQL:select * from tab where col = 'value'...

慢查询导致ES CPU资源打满

慢查询导致ES CPU资源打满

o   一、问题背景§  1.1 集群背景信息§  1.2 收到告警o   二、处理过程§  2.1 查看监控§  2.2 登录kibana查看§  2.3 登录服务器使用命令查看·       2....

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。