Kafka Leader 和 Follower 故障

浩客8个月前技术文章336

前言:

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


相关文章

CDH-Kafka节点迁移

CDH-Kafka节点迁移

1、节点迁移先添加节点,将需要换掉的节点关闭,等待选举leader启动新添加的节点关闭旧的节点等待选举leader出现离线分区。需要将分区分配到新的节点2、重分配分区kafak kerberos环境下...

Oozie安装web页面

Oozie安装web页面

1、查看web页面,页面显示页面显示无法打开oozie的web安装页面,如果需要安装页面需要安装Ext js的lib库2、安装ExtJS 2.2库进入/var/lib/oozie路径中cd  /var...

impala集成ranger后无法刷新元数据

impala集成ranger后无法刷新元数据

【详细描述】impala集成ranger后无法执行invalidate metadata,报错显示没有对应权限【分析过程】daishuyun用户目前在ranger中的权限配置为:报错显示用户daish...

使用Sqoop将数据从Hive导入MySQL(一)

使用Sqoop将数据从Hive导入MySQL(一)

使用Sqoop将数据从Hive导入MySQL首先查看csv数据类型创建类似的hive表并导入数据CREATE TABLE data (    province STRING,    code INT,...

MySQL运维实战(5.6) 字符集设置对mysqldump的影响

mysqldump不指定字符集不指定字符集时,默认使用了utf8。可能和环境有关系。mysqldump -uroot test test_load >&n...

zabbix监控华为存储设备

zabbix监控华为存储设备

确认监控方式开始监控之前首先思考确认好要监控的方式。提出疑问:zabbix 监控华为存储设备推荐使用snmptrap还是snmptt呢?回答:在 Zabbix 监控华为存储设备时,您可以选择使用 SN...

发表评论    

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