日志复制如何保证数据分歧性 揭秘散布式系统

  • 电脑网络维修
  • 2024-11-15

大家好,我是你们的老好友小米!当天我们来聊一聊散布式系统中的一个关键话题——日志复制。这可是保证系统高可用性和数据分歧性的关键技术哦~

1.前言

在散布式系统中,为了保证数据的分歧性和系统的容错性,我们经常会将数据复制到多个主机上。而其中一种经常出现的方法就是日志复制。无论是Raft分歧性算法还是Paxos协定,日志复制都是外围的操作。当天,我们就以Raft算法为例,详细讨论一下日志复制的上班流程。

2.Leader是如何减少指令到日志中的?

在Raft算法中,集群中的主机分为三种角色:Leader、Follower和Candidate。在反常运转时,只要一个Leader,其余主机都是Follower。Leader担任接纳客户端的恳求并将这些恳求复制到其余Follower的日志中。

当Leader收到一个客户端的恳求(例如要降级某个数据),它会先将这个恳求减少到自己的日志中。这个环节可以便捷了解为Leader在自己的笔记本上记了一笔账。记账成功后,Leader就要通知其余的主机了。

为了保证一切主机上的日志都是分歧的,Leader须要将刚才记下的那笔账复制到一切Follower的日志中。这个环节是经过RPC(远程环节调用)来成功的。Leader会向每一个Follower发送一个RPC恳求,通知他们“我要加一条日志,你们也要加上哦!”。

详细流程如下:

Leader动员RPC恳求:Leader把刚减少到日志中的指令封装成一个RPC恳求,发送给一切的Follower。

Follower接纳并处置恳求:Follower收到恳求后,会将这条指令减少到自己的日志中,并前往一个ACK(确认照应)给Leader,示意自己曾经接纳到并记载了这条日志。

Leader期待ACK:Leader会期待一切Follower的ACK,以确保一切的Follower都接纳到并记载了这条日志。

4.Leader的重试机制

在实践的网络环境中,由于网络提前或许其余缺点,Follower或许会没有及时照应Leader的RPC恳求。这时,Leader并不会丢弃,而是会始终地重试,直到收到一切Follower的ACK为止。

重试机制的详细成功

Leader在发送RPC恳求后,会启动一个定时器。假设在规则的期间内没有收到某个Follower的ACK,Leader就会再次发送这个恳求,直到这个Follower照应为止。这种重试机制保证了即使某些Follower临时无法用,当它们复原后,依然能够接纳到一切的日志条目,从而坚持日志的分歧性。

5. 提交日志,最终分歧性的保证

当Leader收到了一切Follower的ACK后,就象征着这条日志曾经被复制到了集群中的大少数主机上(通常是超越半数的主机)。这时,Leader就可以以为这条日志是“安保”的,可以提交了。

通知Follower提交日志

Leader会向一切Follower发送一个“提交”信息,通知他们可以提交这条日志了。提交日志的意思是将这条日志中的指令运行到主机的形态机中(比如降级数据库中的某个数据)。

降级日志形态

Leader在提交日志后,会降级这条日志的形态,标志为“已提交”。而后,Leader会将操作的结果前往给客户端。

整个流程总结

客户端恳求:客户端向Leader发送一个恳求。

Leader减少日志:Leader将恳求减少到自己的日志中。

Leader动员RPC:Leader向一切Follower发送RPC恳求,复制日志。

Follower照应ACK:Follower接纳并记载日志,前往ACK给Leader。

Leader重试:Leader在未收到一切Follower的ACK前,始终重试。

Leader提交日志:收到一切Follower的ACK后,Leader提交日志并通知Follower提交。

Leader前往结果:Leader将操作结果前往给客户端。

6.日志复制中的应战

只管日志复制看起来流程很便捷,但在实践运行中会遇到很多应战。

网络分区

在散布式系统中,网络分区是无法防止的。当网络分区出现时,集群或许会被宰割成两个或多个局部,局部主机之间无法通讯。此时,Leader或许无法收到一切Follower的ACK,造成日志无法提交。

处置网络分区的疑问通常有两种方法:

日志分歧性

在散布式系统中,确保一切主机的日志分歧性是一个关键应战。任何一个主机的日志与其余主机不分歧,都会造成系统形态的不分歧。

为了保证日志分歧性,Raft算法驳回了以下几种战略:

日志复制是散布式系统中保证数据分歧性和系统高可用性的外围技术。经过Leader动员RPC恳求,Follower照应ACK,Leader重试机制以及最终提交日志,保证了系统在面对各种网络缺点和主机缺点时,仍能坚持分歧性和高可用性。

宿愿当天的分享能让大家对日志复制有一个更深化的了解。

  • 关注微信

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/8580.html

猜你喜欢

热门标签

洗手盆如何疏浚梗塞 洗手盆为何梗塞 iPhone提价霸占4G市场等于原价8折 明码箱怎样设置明码锁 苏泊尔电饭锅保修多久 长城画龙G8253YN彩电输入指令画面变暗疑问检修 彩星彩电解除童锁方法大全 三星笔记本培修点上海 液晶显示器花屏培修视频 燃气热水器不热水要素 热水器不上班经常出现3种处置方法 无氟空调跟有氟空调有什么区别 norltz燃气热水器售后电话 大连站和大连北站哪个离周水子机场近 热水器显示屏亮显示温度不加热 铁猫牌保险箱高效开锁技巧 科技助力安保无忧 创维8R80 汽修 a1265和c3182是什么管 为什么电热水器不能即热 标致空调为什么不冷 神舟培修笔记本培修 dell1420内存更新 青岛自来水公司培修热线电话 包头美的洗衣机全国各市售后服务预定热线号码2024年修缮点降级 创维42k08rd更新 空调为什么运转异响 热水器为何会漏水 该如何处置 什么是可以自己处置的 重庆华帝售后电话 波轮洗衣机荡涤价格 鼎新热水器 留意了!不是水平疑问! 马桶产生了这5个现象 方便 极速 邢台空调移机电话上门服务 扬子空调缺点代码e4是什么疑问 宏基4736zG可以装置W11吗 奥克斯空调培修官方 为什么突然空调滴水很多 乐视s40air刷机包 未联络视的提高方向 官网培修 格力空调售后电话 皇明太阳能电话 看尚X55液晶电视进入工厂形式和软件更新方法 燃气热水器缺点代码

热门资讯

关注我们

微信公众号