当第一次理解raft协议的基本原理之后, 给我的第一印象就是raft能够保证多个副本的日志(状态机)强一致这种强一致性就相当于你开启副本了同步复制机制, 只要系统已经提交客户端的请求,那么接下来客户端向任何一个副本发起读请求都能够读到之前提交的数据但是不同于简单粗暴的同步复制方案,分布式系统的可用性将降低至 (P为一个副本的失效概率,N为分布式系统中的副本个数)
即使我认识到了raft这么强的一致性,但是还是忽视了一个细节陈述:raft保证提交的状态机 最终 会 被应用 对于TiKV或者RheaKV,最终状态机会被应用到rocksdb中最终这词似乎在弱化raft的一致性,似乎在向最终一致性靠拢不过可以放心,raft不是最终一致性协议,它就是强一致性,因为它保证了“当日志被提交后,那么在该瞬间可以在N+1个副本上找到该日志条目”, 只不过这个日志条目当前可能还没有被应用到rocksdb上而已,而该应用 *** 作会发生在未来的某个时刻 因此如果你希望看到最新提交点rocksdb的状态, 那么只需要综合计算已经提交但还为被应用的日志条目和rocksdb数据就好了 而raft的线性一致性读的原理就是这么一回事情
为了更好的理解raft的线性一致性读,先来认识一下什么是线性一致性博客[1]对线性一致性已经有了一个比较完整描述线性一致性是一种很强的一致性语义了,它强调 *** 作时间的因果关系, 即使两个 *** 作在逻辑上是完全独立的即使在博客[1]中, clientC读取的不是x,而是y, 但是也要保证如果clientC读取x,也是发现x=2
那么raft是如何实现线性一致性的呢 博客[1,2,3]的解释比较可以理解总结一下:
1、就是我们之前提到的“综合计算已经提交但还为被应用的日志条目和rocksdb数据”而raft的综合计算方式是等待提交点CommitIndex之前的日志条目都被应用到rocksdb中, 然后向rocksdb发起读请求;
2、CommitIndex作为逻辑时间,将请求在时间线上进行排序;
以上就是raft的线性一致性读的核心思想不过这里还需要考虑网络分区的问题raft是能够保证在网络分区发生时仍然能够正常工作, 这里的正常工作是其中一个分区能够正常接受并复制日志条目,而另一个分区将不能复制日志条目当然这并不意味者后者不能再接受请求,因为该分区的leader仍然会认为自己是leader,并接收读请求, 当处理的读请求时,两个分区的提交点就会不同,导致线性一致性读被破坏 因此在ReadIndex方案中,leader会通过心跳rpc来证明在当前提交点下,自己仍然是leader 不过心跳增加了网络开销,另一中LeaseRead方案就通过租期来保证在该租期内自己的leader身份不会被替换,因此在该租期内的一致性读就不需要像ReadIndex方案一样,通过心跳rpc来证明自己的leader身份当然这需要不同副本对租期的长短有一个相对一致的认知, 因为租期通过选举超时计算得到如果不同副本服务器的时钟严重频率不一致,即存在严重的漂移,那么它们对选举超时很难保持一致
[1] >科普一下格来云游戏。
云游戏概念就是,通过网络连接,提供远程服务器运算支持,甚至全权由远程服务器代替运算。
说简单点,网络服务器开游戏,你的电脑仅仅负责远程遥控并接受图像和声音,仅此而已,甚至很多云游戏平台直接对接安卓端,想象一下安卓手机顶着流量玩GTA5,这都是可以的。
不像其他人说的那样只是提供算法“支持”,早在几年前云游戏就已经完全替代你的电脑了,只要有一个稳定且快速的网络,你能无视配置鸿沟玩任何游戏(毕竟你电脑只是起到遥控器的作用23333)
互联网的发展大致分为三个阶段:
第一阶段:从单个网络APPANET向互联网发展;TCP/IP协议的初步成型;
1969年美国国防部创建的第一个分组交换网ARPANET最初只是一个单个的分组交换网(并不是一个互连的网络)。所有要连接的在ARPANET上的主机都直接与就近的结点交换机相连。
为了打破这个问题,于是ARPA开始研究多种网络(如分组无线电网络)互连的技术,这就导致后来互联网的出现,成为了现在因特网的雏形。
1983年TCP/IP协议成为ARPANET上的标准协议,使得所有使用TCP/IP协议的计算机都能利用互联网进行通信,因而人们将1983年作为因特网的诞生之间。
1990年ARPANET正式宣布结束,因为它的实验任务已经完成。
第二阶段:建成三级结构的Internet;分为主干网、地区网和校园网;
之后美国政府机构认识到,因特网必将扩大其使用范围,不应局限于大学和研究机构,之后随着世界上的许多公司纷纷接入到因特网,是网络上的通信量急剧增大。
于是美国政府决定将因特网的主干网转交给私人公司来经营。
第三阶段:形成多层次ISP结构的Internet;ISP首次出现。
从1993年开始,由美国政府资助的NSFNET逐渐被若干个商用的因特网主干网替代。
就这一出现了一个新的名词:因特网服务提供者,简称ISP(Internet Service Provider)。
ISP可以从因特网管理机构申请得到多个IP地址,同时拥有通信线路及路由器等联网设备。用户只需要向ISP交纳规定费用,就可以从ISP得到所需的IP地址,并通过该ISP接入到因特网。
扩展资料
现在,很多人都知道互联网的特点:平等、自由。
但美国一直以来都反对中国加入互联网络。1991年10月的中美高能物理研究会上,美方发言人沃尔特托基(Walter Toki)再次提出把中国纳入互联网络。
经过托氏的努力,会后双方达成一项协议:美方资助中国联网所需的一半经费,另一半由高能所自选解决。然而,通往Internet荆棘之路并未因此而变得平坦。
当时北京出口所连接的每条线路都要经过仔细地检查。美国还限制对中国出中路由器。
经过重重波折,中国终于在1993年3月与互联网络连通。
参考资料:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)