Kafka容错及高可用原理分析.docx
《Kafka容错及高可用原理分析.docx》由会员分享,可在线阅读,更多相关《Kafka容错及高可用原理分析.docx(36页珍藏版)》请在第一文库网上搜索。
1、Kafka容错及高可用原理解读Kakfa中topic的基本组成在kafka中以分区作为复制单元。每个topic由一个或多个分区组成,每个分区都包含一个1eader副本及0个或多个fo11ower副本。当你在创建topic时,需要指定分区数及复制因子。通常情况下一个复制因子是3的topic表明它有一个1eader副本及两个fo11ower副本。不论是一个1eader副本还是一个fo11ower副本都会被算作一个数据副本。1个topic的4个分区分布在3个broker上一个独立的Kafka服务器就被称为broker,broker接收来自生产者的消息,为消息设置偏移量,并提交消息到磁盘保存。一个br
2、oker可以包含一个topic的部分或者全部分区数据。所有的读写操作都发生在1eader副本所存在的broker上。Fo11ower会周期性地向1eader发出fetch请求以获取最新的信息。消费者不会从fo11ower上消费数据,fo11ower只为数据冗余及故障切换而存在。1earder与fo11ower分区的故障切换当一个broker失效时,它上面很有可能包含了很多分区的IeacIer副本。如果丢失了Ieader副本,将导致剩余节点上的fo11ower副本被升级为Ieader副本。但事实上这种情况取决于fo11ower是否与IeaeIer保持同步状态,如果不同步,就要看是否允许切换到不同
3、步的分区上,这是一种UnCIean的切换。我们先来看一个简单的情况。当broker3失效时,对于当前topic的2号分区原Ieader也随之失效,同时将在broker2上提升原fo11ower副本而成为新的1eader副本Broker3失效,broker2上原分区2的fo11ower被升级为Ieader之后broker1也失效,1号分区也将丧失其Ieader副本,转而将Ieader切换到broker2Broker1也失效,所有Ieader副本都切换到broker2_t,topic将不再有冗余数据副本然后broker1恢复,重新上线,对于每个数据分区它会生成一个fo11ower副本以增强其数据冗
4、余。但是所有数据分区的Ieader副本仍然集中在broker2上紧接着broker3也恢复,重新上线,但是所有的Ieader副本都仍然集中在broker2上在broker1、3恢复后,Ieader副本出现了不均衡的情况对于这种情况kafka提供了一个比较好的功能来解决这种问题。kafka有个首选复制Ieader的概念。当kafka创建topic的分区时,它会尽量将每个分区的第一个1eader副本均匀地分布在每个broker节点上,同时记录这些1eader副本为首选复制Ieade八随着时间的推移,当发生服务器重启、服务器失效、网络分区等情况时,Ieader可能会在不同于首选复制Ieader的节点
5、上启停,就像我们前面所举的例子一样。为了解决这个问题,kafka提供了两个选项:在broker的配置中设置auto.1eader,reba1ance,enab1e=trueo这样一个后台进程就会在1eader,imba1ance.check,interva1,seconds所指定的时间间隔进行检查,如果Ieae1er的分布数量超过1eader,imba1ance.per.broker,percentage的值就会触发重新分布1eader,控制节点会根据首选复制Ieader来重新分布1eader,最终形成均匀地分布状态管理员也可以通过执行kafka-Preferred-rep1ica-e1ect
6、ion,sh脚本来手工执行,以达到我们期望的理想状态1eader副本再均衡这是简单情况下的Ieader副本故障切换。以此为开端,我们即将面临更复杂的场景,通过这种方式我们逐步引入更多的概念。接下来我们讲讲ISR(In-SyncRep1icas)。In-SyncRep1icas(ISR)ISR是一组保持在同步状态下的分区副本的集合。在ISR里面始终会有一个Ieader副本(在有可用数据副本的情况下)以及0个或多个fo11ower副本。如果一个fo11ower在设定的rep1ica.1ag.time.max.ms时间周期内时刻保持与1eader的数据更新,则认为该fo11ower是同步的,它将被1
7、eader保留在ISR列表中,反之将被从ISR中剔除。在acks=a11写入数据时,只有ISR中所有的副本都返回ACK,这时1eader才能commit该数据并认为该数据写入成功,然后返回生产者写入成功标记。处于同步状态时的fo11ower副本意味着是1eader的一个准确数据副本。在下列场景中fo11ower将会被移除ISR列表: fo11ower在rep1ica,fetch,wait.max.ms指定的时间范围内不能向1eader发出fetch操作请求(假定fo11ower已死) 最新数据的更新时间已经比rep1ica.1ag.time.max.ms指定的时间还要落后(被认为是一个慢fo1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Kafka 容错 可用 原理 分析
