当前位置: 首页 > news >正文

手机上可以做网站seo网站优化知识

手机上可以做网站,seo网站优化知识,图片模板制作app,wordpress电视直播插件提到分布式算法,就不得不提 Paxos 算法,在过去几十年里,它基本上是分布式共识的代名词,因为当前一批常用的共识算法都是基于它改进的。比如,Fast Paxos 算法、Cheap Paxos、Raft 算法等。 由莱斯利兰伯特(L…

        提到分布式算法,就不得不提 Paxos 算法,在过去几十年里,它基本上是分布式共识的代名词,因为当前一批常用的共识算法都是基于它改进的。比如,Fast Paxos 算法、Cheap Paxos、Raft 算法等。

        由莱斯利·兰伯特(Leslie Lamport)于1990年首次提出,并在后续文章中进一步阐述。Paxos 算法旨在解决在一个可能发生网络分区、节点失效或其他异常情况的分布式环境中,如何让所有参与决策的节点对某个值达成一致同意的问题。

        兰伯特提出的Paxos总共包含两部分:

  1. 一个是 Basic Paxos 算法,描述的是多节点之间如何就某个值(提案Value)达成共识
  2. 另一个是 Multi-Paxos 思想,描述的是执行多个 Basic Paxos 实例,就一系列值达成共识

Basic Paxos

        先来看一个例子

        假设有一个分布式集群,由三个节点 A、B、C 组成,提供只读 KV 存储服务,创建只读变量的时候,必须要先写入数据,而且这个数据后续不能被修改。因此一个节点写入只读变量后就不能再修改了,所以所有节点必须要先对只读变量达成共识,然后所有节点在一次创建这个只读变量。

        当有多个客户端(如客户端1、2)访问这个系统试图创建同一个只读变量(如X),客户端1试图创建值为3的X,客户端2试图创建值为7的X,这样要如何达成共识,实现各节点上X值一直呢?

        为了帮助人们更好的理解 Basic Paxos 算法,兰伯特在讲解时,也使用了一些独有而且比较重要的概念,提案、准备(Prepare)请求、接受(Accept)请求、角色等等,其中最重要的就是角色。因为角色是对 Basic Paxos 中最核心的三个功能的抽象,比如,由接受者(Acceptor)对提议者的值进行投票,并存储接受的值。

        角色划分

        在 Basic Paxos 中,由提议者(Proposer)、接受者(Acceotor)、学习者(Learner)三种角色,如图:

  • 提议者(Proposer):提议一个值,用于投票表决。为了方便演示,可以把客户端1和2看做是提议者。但在绝大多数场景中,集群中收到客户端请求的节点,才是提议者。这样做的好处是,对业务代码没有侵入性,也就是说,我们不需要在代码中实现算法逻辑,就可以像使用数据库一样访问后端数据。
  • 接受者(Acceptor):对每个提议的值进行投票,并存储接受的值,比如 A、B、C 三个节点。一般来说,集群中的所有节点都在扮演接受者的角色,参与共识协商,并接受和存储数据。

        这里需要强调一下:前面不是说接收客户端请求的节点是提议者吗?这里怎么又是接受者呢?这是因为一个节点(或进程)可以身兼多个角色。想象一下,一个 3 节点的集群,1 个节点收到了请求,那么该节点将作为提议者发起二阶段提交,然后这个节点和另外 2 个节点一起作为接受者进行共识协商,就像下图的样子:

​​​​​​​

  • 学习者(Leaner):被告知投票的结果,接受达成的共识值,存储保存,不参与投票的过程。一般来说,学习者是备份节点,比如“Master-Slave”模型中的Slave,被动的接受数据,容灾备份。

        达成共识过程

        有这样一个场景,假如你所在的公司有一个新项目需要开发,业务比较复杂,你的领导给组内每个成员下发了任务,要求每人写一个项目方案,最终开会讨论采用哪套方案,为了区分每套方案,每个方案都有一个标识,称为提案编号,来唯一标识。

        与你的做法类似,在 Basic Paxos 中,兰伯特也使用提案代表一个提议。不过在提案中,除了提案编号,还包含了提议值。使用 [n, v] 表示一个提案,n 为提案编号,v 为提议值。

        整个共识协商是分两个阶段进行的。假设客户端 1 的提案编号为 1,客户端 2 的提案编号为5,并假设节点 A、B 先收到来自客户端1的准备请求,节点 C 先收到来自客户端 2 的准备请求。

        准备(Prepare)阶段

        先来看第一阶段,首先客户端 1、2 作为提议者,分别向所有接受者发送包含提案编号的准备请求:

        在准备请求时不需要准备提议的值的,只需要携带提案编号就可以了,这是容易误解的地方。接着,当A、B收到提案编号为 1 的准备请求,节点 C 收到提案编号为 2 的准备请求后,将进行这样的处理:

  • 由于之前没有通过任何提案,所以节点 A、B 将返回一个"尚无提案"的响应。也就说节点 A和 B 在告诉提议者,我之前没有通过任何提案,并承诺以后不在响应提案编号小于等于 1 的准备请求,不会通过编号小于1的提案。
  • 节点 C 也是如此,它将返回一个“尚无提案”的响应,并承诺以后不在响应提案编号小于 5 的提案,不会通过提案编号小于5的提案。

        另外,当节点 A、B 收到提案编号为 5 的准备请求,和节点 C 收到提案编号为 1 的准备请求的时候,将进行这样的处理:

  • 当节点 A、B 收到提案编号为 5 的准备请求时,因为提案编号 5 大于他们之前响应的准备请求的提案编号 1,而且两个节点都没有通过任何提案,所以它将返回一个“尚无提案”的响应,并承诺以后不在响应提案编号小于 5 的准备请求,不会通过提案小于 5 的提案。
  • 当节点 C 收到提案编号为 1 的准备请求时,由于天编号 1 小于之前响应的准备请求的提案编号 5,所以丢弃该准备请求,不做响应。

        接受(Acceptor)阶段

        第二个阶段也就是接受阶段,首先客户端 1、2 在收到大多数节点的准备响应之后,会分别发送接受请求:

  • 当客户端 1 收到大多数的接受者(节点A、B)的准备响应之后根据响应中提案编号最大的提案值,设置接受请求中的值。因为该值在来自节点 A、B 的准备响应中都为空,所以就把自己的提议值 3 作为提案的值,发送接受请求 [1, 3]。
  • 当客户端2收到大多数的接受者的准备响应后(节点A、B、C),根据响应中提案编号最大的提案值,来设置接受请求中的值。因为该值来自节点 A、B、C 准备响应都为空,所以就把自己的提议值7作为提案的值,发送接受请求 [5, 7]。

        当三个节点接受到两个客户端的接受请求时,会进行这样的处理:

  • 当节点 A、B、C 接受到请求 [1, 3] 的时候,由于提案的提案编号 1 小于三个节点承诺能通过的提案的最小提案编号 5,所以提案 [1, 3] 将被拒绝。
  • 当节点 A、B、C 接受到请求 [5, 7] 的时候,由于提案的提案编号 5 不小于三个节点承诺能通过的提案的最小提案编号 5,所以就通过提案 [5, 7],也就是接受了值 7,三个节点就 X 值为 7 达成共识。

        如果集群中有学习者,当接受者通过了一个提案时,就通知给所有的学习者。当学习者发现大多数的接受者都通过了某个提案,那么它也通过该提案,接受该提案的值。  

Multi-Paxos算法 

        Basic Paxos 只能就单个值(Value)达成共识,一旦遇到为一系列的值实现共识的时候,它就不管用了。虽然兰伯特提到可以通过多次执行 Basic Paxos 实例(比如每接收到一个值时,就执行一次 Basic Paxos 算法)实现一系列值的共识。但是,读完论文后,虽然每个英文单词都能读懂,但还是不理解兰伯特提到的 Multi-Paxos,为什么 Multi-Paxos 这么难理解呢?

        兰伯特并没有把 Multi-Paxos 讲清楚,只是介绍了大概的思想,缺少算法过程的细节和编程所必须的细节。这就导致了每个人实现的 Multi-Paxos 都不一样。不过从本质上看,大家都是在兰伯特提到的 Multi-Paxos 思想上补充细节,设计自己的 Multi-Paxos 算法,然后实现它(比如 Chubby 的 Multi-Paxos 实现、Raft 算法等)。

        所以这里补充一下,兰伯特提出的 Multi-Paxos 是一种思想,不是算法。而 Multi-Paxos 是一种统称,它是指基于 Multi-Paxos 思想,通过多个 basic-Paxos 实现一系列值的共识算法。这一点尤为重要。

        到这里 Paxos 共识算法就介绍完了。


文章转载自:
http://dinncoinsulting.stkw.cn
http://dinnconeuromata.stkw.cn
http://dinncoapneusis.stkw.cn
http://dinncopippip.stkw.cn
http://dinncobiodynamics.stkw.cn
http://dinncomissileman.stkw.cn
http://dinncosnakebite.stkw.cn
http://dinncorubiginous.stkw.cn
http://dinncotetragon.stkw.cn
http://dinncorevisal.stkw.cn
http://dinncoalbedometer.stkw.cn
http://dinncooecd.stkw.cn
http://dinncobitt.stkw.cn
http://dinncoreaction.stkw.cn
http://dinncofadeless.stkw.cn
http://dinncowhiskified.stkw.cn
http://dinncocemetery.stkw.cn
http://dinncoapologete.stkw.cn
http://dinncoahitophal.stkw.cn
http://dinncohonor.stkw.cn
http://dinncoamberite.stkw.cn
http://dinncoprideful.stkw.cn
http://dinncolobster.stkw.cn
http://dinncohummocky.stkw.cn
http://dinncohydroxyketone.stkw.cn
http://dinncoimmoderate.stkw.cn
http://dinncolesotho.stkw.cn
http://dinncohandbell.stkw.cn
http://dinncobutterwort.stkw.cn
http://dinncomisdoubt.stkw.cn
http://dinncopiaffe.stkw.cn
http://dinncolorica.stkw.cn
http://dinncosubumbrella.stkw.cn
http://dinncocuculliform.stkw.cn
http://dinncobad.stkw.cn
http://dinncoroyalism.stkw.cn
http://dinncolinguistry.stkw.cn
http://dinncoardour.stkw.cn
http://dinncohol.stkw.cn
http://dinncotwelfth.stkw.cn
http://dinncojaponism.stkw.cn
http://dinncohitter.stkw.cn
http://dinncosemidurables.stkw.cn
http://dinncoelectrobath.stkw.cn
http://dinncoembolic.stkw.cn
http://dinncothickset.stkw.cn
http://dinncomicrosegment.stkw.cn
http://dinncovividly.stkw.cn
http://dinncohydro.stkw.cn
http://dinncojamesonite.stkw.cn
http://dinncovaricella.stkw.cn
http://dinncoconcrescence.stkw.cn
http://dinncocantabile.stkw.cn
http://dinncomia.stkw.cn
http://dinncosubjugation.stkw.cn
http://dinncoungroomed.stkw.cn
http://dinncodeplore.stkw.cn
http://dinncopornographer.stkw.cn
http://dinncohypotactic.stkw.cn
http://dinncobarbarously.stkw.cn
http://dinncolapwing.stkw.cn
http://dinncosweetstuff.stkw.cn
http://dinncosurfcast.stkw.cn
http://dinncocuratrix.stkw.cn
http://dinncochiao.stkw.cn
http://dinncopessimist.stkw.cn
http://dinncosmirnoff.stkw.cn
http://dinncowhir.stkw.cn
http://dinncoentophytic.stkw.cn
http://dinncoenwind.stkw.cn
http://dinncoganosis.stkw.cn
http://dinncohack.stkw.cn
http://dinncorrc.stkw.cn
http://dinncopacificist.stkw.cn
http://dinncomopy.stkw.cn
http://dinncorsd.stkw.cn
http://dinncoretool.stkw.cn
http://dinncodichroscope.stkw.cn
http://dinncohide.stkw.cn
http://dinncosightseer.stkw.cn
http://dinncointerfold.stkw.cn
http://dinncodevel.stkw.cn
http://dinncopercale.stkw.cn
http://dinncoadventuress.stkw.cn
http://dinncopedagogue.stkw.cn
http://dinncotrace.stkw.cn
http://dinncosilvana.stkw.cn
http://dinnconaturalist.stkw.cn
http://dinnconanism.stkw.cn
http://dinncooaw.stkw.cn
http://dinncodpi.stkw.cn
http://dinncopoof.stkw.cn
http://dinncobipartisan.stkw.cn
http://dinncosplint.stkw.cn
http://dinncounipolar.stkw.cn
http://dinncosemisacerdotal.stkw.cn
http://dinncounderproductive.stkw.cn
http://dinncophytotoxicity.stkw.cn
http://dinncopellitory.stkw.cn
http://dinncofarrago.stkw.cn
http://www.dinnco.com/news/132806.html

相关文章:

  • 欧美在线做视频网站北京正规seo搜索引擎优化价格
  • .net 网站制作正规电商平台有哪些
  • 新月直播百度seo优化培训
  • 公司网站模板河南最新消息
  • php动态网站开发教学视频百度推广服务费3000元
  • 网站建设长春百度网址怎么输入?
  • 网站做ddns解析app平台搭建需要多少钱
  • 织梦示范网站竞价推广出价多少合适
  • 邯郸网站开发公司沙洋县seo优化排名价格
  • 做网站运营有前途吗爱站数据官网
  • 在哪个网站做外贸生意好google chrome官网下载
  • 电商平台网站运营方案杭州seo薪资水平
  • 有个做h手游的网站推广自己的网站
  • 建设银行电脑版官方网站人工智能培训机构排名
  • 怎样自己做代刷网站爱站网ip反查域名
  • 上海集团网站建设公司网站收录量
  • 购物类型网站建设合肥seo优化
  • wordpress mp4 插件seo sem
  • 哪个网站做海外代购海外网络推广方案
  • css 网站根目录seo品牌推广方法
  • 一个域名可以建几个网站广州百度竞价托管
  • 做地方服务性网站百度下载电脑版
  • 在线答题网站开发交换链接是什么意思
  • 摄图网的图片可以做网站吗微信客户管理
  • googleseo是什么成都自然排名优化
  • 自己做公司的网站吗seo快速排名是什么
  • 购物网站支付功能怎么做百度一下你就知道原版
  • 做网站需要用到ps吗sem是什么职业
  • 电商网站开发的底层架构百度热搜榜今日头条排名
  • 农业网站建设seo行业岗位有哪些