当前位置:首页 » 算力简介 » 去中心一致性算法

去中心一致性算法

发布时间: 2022-04-09 01:11:56

① 刚刚了解,谁能告诉我区块链是什么通俗解释一下区块链技术的方法

大家共同记账的方式,也被称为“分布式”或“去中心化”,因为人人都记账,且账本的准确性由程式算法决定,而非某个权威机构。

这就是区块链,核心讲完了,区块链就这么简单,一个共同记账的账本

区块链技术六大核心算法:

区块链核心算法一:拜占庭协定

拜占庭的故事大概是这么说的:拜占庭帝国拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个邻邦入侵的都会失败,同时也有可能自身被其他9个邻邦入侵。拜占庭帝国防御能力如此之强,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。然而,如果其中的一个或者几个邻邦本身答应好一起进攻,但实际过程出现背叛,那么入侵者可能都会被歼灭。于是每一方都小心行事,不敢轻易相信邻国。这就是拜占庭将军问题。

区块链核心算法二:非对称加密技术

在上述拜占庭协定中,如果10个将军中的几个同时发起消息,势必会造成系统的混乱,造成各说各的攻击时间方案,行动难以一致。谁都可以发起进攻的信息,但由谁来发出呢?其实这只要加入一个成本就可以了,即:一段时间内只有一个节点可以传播信息。当某个节点发出统一进攻的消息后,各个节点收到发起者的消息必须签名盖章,确认各自的身份。

区块链核心算法三:容错问题

我们假设在此网络中,消息可能会丢失、损坏、延迟、重复发送,并且接受的顺序与发送的顺序不一致。此外,节点的行为可以是任意的:可以随时加入、退出网络,可以丢弃消息、伪造消息、停止工作等,还可能发生各种人为或非人为的故障。我们的算法对由共识节点组成的共识系统,提供的容错能力,这种容错能力同时包含安全性和可用性,并适用于任何网络环境。

区块链核心算法四:Paxos 算法(一致性算法)

Paxos算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。一个典型的场景是,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点都执行相同的操作序列,那么他们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。一个通用的一致性算法可以应用在许多场景中,是分布式计算中的重要问题。 节点通信存在两种模型:共享内存和消息传递。Paxos算法就是一种基于消息传递模型的一致性算法。

区块链核心算法五:共识机制

区块链共识算法主要是工作量证明和权益证明。拿比特币来说,其实从技术角度来看可以把PoW看成重复使用的Hashcash,生成工作量证明在概率上来说是一个随机的过程。开采新的机密货币,生成区块时,必须得到所有参与者的同意,那矿工必须得到区块中所有数据的PoW工作证明。与此同时矿工还要时时观察调整这项工作的难度,因为对网络要求是平均每10分钟生成一个区块。

区块链核心算法六:分布式存储是一种数据存储技术,通过网络使用每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在网络中的各个角落。所以,分布式存储技术并不是每台电脑都存放完整的数据,而是把数据切割后存放在不同的电脑里。就像存放100个鸡蛋,不是放在同一个篮子里,而是分开放在不同的地方,加起来的总和是100个。想了解更多可以多利用网络搜索,网络搜索结果-小知识

② 数据库一致性模型和隔离级别

数据库下一步发展的基础:分布式SQL,分布式SQL是部署在单个数据中心中的多个物理节点或多个数据中心(如果需要)中的单个逻辑数据库。所有这些都使其能够提供弹性的氧化皮和防弹的弹性。今天我们就来聊聊数据库一致性模型和隔离级别。

③ 为什么去中心化了还能升级

什么是“去中心化”?

“去中心化”翻译自英语单词Decentralization,是由前缀de-、词干central、后缀-ization组成。其中,词干central意为“中心”,后缀-ization意为“……化”,而前缀de-则有离开、除去、取消、相反等含义。因此,将其翻译为去中心化是非常准确的。

那么,去中心化具体而言是什么含义呢?

以太坊创始人Vitalik Buterin于2017年2月发表的《The meaning of decentralization》一文中,详细阐述了去中心化的含义。他认为应该从三个角度来区分计算机软件的中心化和去中心化:架构、治理和逻辑。

架构中心化是指系统能容忍多少节点的崩溃而可以继续运行;治理中心化是指需要多少的个人和组织能最终控制这个系统;逻辑中心化是指系统呈现的接口和数据是否像是一个单一的整体。

区块链是全网统一的账本,因此从逻辑上看是中心化的,这一点无可置疑。从架构上看,区块链是基于对等网络的,因此是架构去中心化的。从治理上看,区块链通过共识算法使得少数人很难控制整个系统,因此是治理去中心化的。架构和治理上的去中心化为区块链带来三个好处:容错性、抗攻击力和防合谋。

区块链与传统分布式系统的5点区别

作为一种全新种类的分布式系统,区块链往往被错误地当作是一个分布式的数据库或日志系统,实际上区块链与传统的分布式系统之间有着本质的区别——去中心化。现在我们来审视一下区块链与传统分布式系统的主要区别:

(1)一致性算法:区块链需要解决的是拜占庭将军问题,即网络中存在一个或多个欺诈节点,可能会故意违反协议或传输错误的数据,因此区块链往往采用拜占庭容错的一致性算法(通常称为共识算法),如BFT、PoW、PoS等;而传统分布式系统只需考虑节点失效和通讯错误的情况,往往采用paxos、raft之类的一致性算法,这类算法不能对抗欺诈节点。

(2)中央控制方:在区块链网络中是不存在中央控制方的,没有一个节点可以控制或协调账本数据的生成,各节点通过共识算法进行协调,生成一致的账本。而传统发布式系统则往往是由一个机构进行控制,统一调度各节点参与运算。

(3)规则制定:区块链的规则就是共识协议,又称共识机制,共识算法是其中的一部分。共识机制一般是由一个人或一个团队设计制定,并开发出相应的程序,提供给社区使用。这一点似乎与传统的分布式系统一样,但区块链的共识机制的改变、升级是需要社区对此有一致的共识,如果不能达成共识,则任何人都可以实施硬分叉,另建一个社区、一条链。这就是共识机制的去中心化过程。

④ 分布式共识包含哪三种方法

PoW 、PoS 、DPOW都是什么意思?
说到区块链,我们必然会谈及它的共识机制。不了解区块链的共识机制,就无法理解区块链的真正意义。那么,今日份的区块链的共识机制了解一下?
共识机制是什么?
什么是共识?直取它的字面意思,就是"共同的认识".
人与人是不同的,这种不同不仅体现在身材、长相、能力,更体现在文化、观点、想法、利益诉求等等方面。
共识,简而言之,就是一个群体的成员在某一方面达成的一致意见。
我们了解到,信任是社会运转中的一大痛点,银行有自己的信用体系,过去的金融体系服务于只服务于极少的企业家,因为建立信用体系耗资巨大。后来支付宝有了芝麻信用,信用已经关系到生活的很多方面,信用卡额度、花呗额度,芝麻信用高出国还可以免签。我们正享受着信用给我们带来的便捷。
区块链本质是去中心化,去中心化的核心是共识机制,区块链上的共识机制主要解决由谁来构造区块,以及如何维护区块链统一的问题。
区块链共识机制的目标是使所有的诚实节点保存一致的区块链视图,同时满足两个性质:
1)一致性:所有诚实节点保存的区块链的前缀部分完全相同。
2)有效性:由某诚实节点发布的信息终将被其他所有诚实节点记录在自己的区块链中。
区块链的自信任主要体现于分布于区块链中的用户无须信任交易的另一方,也无须信任一个中心化的机构,只需要信任区块链协议下的软件系统即可实现交易。
共识机制是什么?PoW 、PoS 、DPOW都是什么意思?
共识机制的必要性?
分布式系统中,多个主机通过异步通信方式组成网络集群。在这样的一个异步系统中,需要主机之间进行状态复制,以保证每个主机达成一致的状态共识。错误信息可能出现在异步系统内并不断传播,因此需要在默认不可靠的异步网络中定义容错协议,以确保各主机达成安全可靠的状态共识,这就是共识机制诞生的必要性。
这种自信任的前提是区块链的共识机制(consensus),即在一个互不信任的市场中,要想使各节点达成一致的充分必要条件是每个节点出于对自身利益最大化的考虑,都会自发、诚实地遵守协议中预先设定的规则,判断每一笔记录的真实性,最终将判断为真的记录记入区块链之中。attachments-2018-08-9yY7VRHa5b738e3d96021.jpg
换句话说,如果各节点具有各自独立的利益并互相竞争,则这些节点几乎不可能合谋欺骗你,而当节点们在网络中拥有公共信誉时,这一点体现得尤为明显。区块链技术正是运用一套基于共识的数学算法,在机器之间建立"信任"网络,从而通过技术背书而非中心化信用机构来进行全新的信用创造。
当今区块链的几种共识机制介绍
区块链上的共识机制有多种,但任何一种都不是完美无缺,或者说适用于所有应用场景的。
PoW 工作量证明
整个系统中每个节点为整个系统提供计算能力(简称算力),通过一个竞争机制,让计算工作完成最出色的节点获得系统的奖励,即完成新生成货币的分配,简单理解就是多劳多得,bitcoin、LTC等货币型区块链就应用POW机制。
优点
完全去中心化节点自由进出,算法简单,容易实现破坏系统花费的成本巨大,只要网络破坏者的算力不超过网络总算力的50%,网络的交易状态就能达成一致
缺点
浪费能源,这是最大的缺点区块的确认时间难以缩短,如bitcoin每秒只能做7笔交易,不适合商业应用新的区块链必须找到一种不同的散列算法,否则就会面临bitcoin的算力攻击对节点的性能网络环境要求高容易产生分叉,需要等待多个确认无法达成最终一致性
PoS 权益证明
也称股权证明,类似于你把财产存在银行,这种模式会根据你持有加密货币的数量和时间,分配给你相应的利息。
优点
对节点性能要求低,达成共识时间短
缺点
没有最终一致性,需要检查点机制来弥补最终性
DPOW 委托股权证明
DPOW是 PoS 的进化方案,在常规 PoW和 PoS 中,任何一个新加入的区块,都需要被整个网络所有节点做确认,非常影响效率。
DPoS则类似于现代董事会的投票机制,通过选举代表来进行投票和决策。被选举出的n个记账节点来做新区块的创建、验证、签名和相互监督,这样就极大地减少了区块创建和确认所需要消耗的时间和算力成本。
优点
大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证
缺点
牺牲了去中心化的概念,不适合公有链
PBFT 实用拜占庭容错
实用拜占庭容错机制是一种采用"许可投票、少数服从多数"来选举领导者并进行记账的共识机制,该共识机制允许拜占庭容错,允许强监督节点参与,具备权限分级能力,性能更高,耗能更低,而且每轮记账都会由全网节点共同选举领导者,允许33%的节点作恶,容错率为33%.实用拜占庭容错特别适合联盟链的应用场景。
优点
会背离中心化,加密货币的存在及奖励机制会产生马太效应,让社区中的穷者更穷,富者更富共识效率高,可实现高频交易
缺点
当系统只剩下33%的节点运行时,系统会停止运行
dBFT 授权拜占庭容错
这种机制是用权益来选出记账人,然后记账人之间通过拜占庭容错算法达成共识。授权拜占庭容错机制最核心的一点,就是最大限度地确保系统的最终性,使区块链能够适用于真正的金融应用场景。
优点
专业化的记账人可以容忍任何类型的错误记账由多人协同完成,每一个区块都有最终性,不会分叉算法的可靠性有严格的数学证明
缺点
当三分之一或以上记账人停止工作后,系统将无法提供服务当三分之一或以上记账人联合作恶,可能会使系统出现分叉
Pool 验证池
基于传统的分布式一致性技术,加上数据验证机制。
优点
不需要加密货币也可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础上,实现秒级共识验证。
缺点
去中心化程度不如bitcoin,更适合多方参与的多中心商业模式。
Paxos
这是一种传统的分布式一致性算法,是一种基于选举领导者的共识机制。领导者节点拥有绝对权限,并允许强监督节点参与,其性能高,资源消耗低。所有节点一般有线下准入机制,但选举过程中不允许有作恶节点,不具备容错性。
Paxos算法中将节点分为三种类型:
proposer:提出一个提案,等待大家批准为结案。往往是客户端担任该角色
acceptor:负责对提案进行投票。往往是服务端担任该角色
learner:被告知结案结果,并与之统一,不参与投票过程。可能为客户端或服务端
Paxos 能保证在超过50%的正常节点存在时,系统能达成共识。
瑞波共识机制
瑞波共识算法使一组节点能够基于特殊节点列表形成共识,初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由该俱乐部51%的会员投票通过。共识遵循这些核心成员的"51%权利",外部人员则没有影响力。由于该俱乐部由中心化开始,它将一直是中心化的,而如果它开始腐化,股东们什么也做不了。与bitcoin及Peercoin一样,瑞波系统将股东们与其投票权隔开,因此,它比其他系统更中心化。
Peercoin
Peercoin(点点币,PPC),混合了POW工作量证明及POS权益证明方式,其中POW主要用于发行货币,未来预计随着挖矿难度上升,产量降低,系统安全主要由POS维护。
在区块链网络中,由于应用场景的不同,所设计的目标各异,不同的区块链系统采用了不同的共识算法。每种共识算法都不是完美的,都有其优点和局限性。
区块链解决了在不可信信道上传输可信信息、价值转移的问题,而共识机制解决了区块链如何分布式场景下达成一致性的问题。
虽然区块链目前还处于发展的早期,行业发展还面临着一些阻碍,但社会已经足够多地认识到区块链的价值,区块链发展的脚步绝不会停滞不前,行业发展也定会找到突破阻碍的方法。

⑤ elasticsearch的自动发现节点机制是怎么实现的,原理是怎样

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:ben well
链接:http://www.hu.com/question/29360024/answer/55368070
来源:知乎

早期 es 版本有 split brain 问题,俗称脑裂。ES 采用的是一种 P2P 的 gossip 选举方式,Gossip 算法因为 Cassandra 而名声大噪。
背景:
Gossip 算法, 灵感来自办公室八卦, 只要一个人八卦一下, 在有限的时间内所有人都会知道该八卦的信息,
这种方式也与病毒传播类似, 因为 Gossip 有众多的别名"闲话算法"、"疫情传播算法"、"病毒感染算法"、"谣言传播(Rumor-Mongering)算法".
但 Gossip 并不是一个新东西, 之前的泛洪查找、路由算法都归属于这个范畴, 不同的是 Gossip 给这类算法提供了明确的语义、具体实施方法及收敛性证明.

特点:
Gossip 算法又被称为反熵(Anti-Entropy), 熵是物理学上的一个概念, 代表杂乱无章, 而反熵就是在杂乱无章中寻求一致,
这充分说明了 Gossip 的特点:在一个有界网络中, 每个节点都随机地与其他节点通信, 经过一番杂乱无章的通信,
最终所有节点的状态都会达成一致. 每个节点可能知道所有其他节点, 也可能仅知道几个邻居节点,
只要这些节可以通过网络连通, 最终他们的状态都是一致的, 当然这也是疫情传播的特点.
要注意到的一点是, 即使有的节点因宕机而重启, 有新节点加入, 但经过一段时间后,
这些节点的状态也会与其他节点达成一致, 也就是说, Gossip 天然具有分布式容错的优点.

本质:
Gossip 是一个带冗余的容错算法, 更进一步, Gossip 是一个最终一致性算法。
虽然无法保证在某个时刻所有节点状态一致, 但可以保证在”最终“所有节点一致, ”最终“是一个现实中存在, 但理论上无法证明的时间点。
因为 Gossip 不要求节点知道所有其他节点, 因此又具有去中心化的特点, 节点之间完全对等, 不需要任何的中心节点。
实际上 Gossip 可以用于众多能接受“最终一致性”的领域:失败检测、路由同步、Pub/Sub、动态负载均衡。
但 Gossip 的缺点也很明显, 冗余通信会对网路带宽、CPU 资源造成很大的负载, 而这些负载又受限于通信频率, 该频率又影响着算法收敛的速度。

总结:
Gossip 是一种去中心化、容错而又最终一致性的绝妙算法, 其收敛性不但得到证明还具有指数级的收敛速度。
使用 Gossip 的系统可以很容易的把 Server 扩展到更多的节点, 满足弹性扩展轻而易举。
唯一的缺点是收敛是最终一致性, 不适应那些强一致性的场景, 比如 2PC。

⑥ 求理想点法及层次分析法,算法原理及步骤什么的

信息熵

熵权法是一种客观赋权方法。按照信息论基本原理的解释,信息是系统有序程度的一个度量,熵是系统无序程度的一个度量;如果指标的信息熵越小,该指标提供的信息量越大,在综合评价中所起作用理当越大,权重就应该越高。
单位质量物质的熵称为比熵,记为s。熵最初是根据热力学第二定律引出的一个反映自发过程不可逆性的物质状态参量。热力学第二定律是根据大量观察结果总结出来的规律,有下述表述方式:

理想点的原理

理想点法是C.L.Hwang 和 K.Yoon 两人于1981年首次提出,理想点法根据有限个评价对象与理想化目标的接近程度进行排序的方法,是在现有的对象中进行相对优劣的评价理想点法是多目标决策分析中一种常用的有效方法,又称为优劣解距离法。
其基本原理,是通过检测评价对象与最优解、最劣解的距离来进行排序,若评价对象最靠近最优解同时又最远离最劣解,则为最好;否则为最差。其中最优解的各指标值都达到各评价指标的最优值。最劣解的各指标值都达到各评价指标的最差值。

层次分析法的原理

人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是一个由相互关联、相互制约的众多因素构成的复杂而往往缺少定量数据的系统。层次分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。

变量的不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大。 信息熵是信息论中用于度量信息量的一个概念。一个系统越是有序,信息熵就越低; 反之,一个系统越是混乱,信息熵就越高。所以,信息熵也可以说是系统有序化程度的一个度量。

⑦ 区块链目前用到哪些共识机制它们各自的优缺点和适用范围是什么

目前主要有四大类共识机制:Pow、Pos、DPos、Pool
1、Pow工作量证明,就是大家熟悉的挖矿,通过与或运算,计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,全网其它节点验证后一起存储;
优点:完全去中心化,节点自由进出;
缺点:目前bitcoin已经吸引全球大部分的算力,其它再用Pow共识机制的区块链应用很难获得相同的算力来保障自身的安全;挖矿造成大量的资源浪费;共识达成的周期较长,不适合商业应用

2、Pos权益证明,Pow的一种升级共识机制;根据每个节点所占代币的比例和时间;等比例的降低挖矿难度,从而加快找随机数的速度。
优点:在一定程度上缩短了共识达成的时间
缺点:还是需要挖矿,本质上没有解决商业应用的痛点

3、DPos股份授权证明机制,类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。
优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证
缺点:整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的

4、Pool验证池,基于传统的分布式一致性技术,加上数据验证机制;是目前行业链大范围在使用的共识机制
优点:不需要代币也可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础上,实现秒级共识验证;
缺点:去中心化程度不如bictoin;更适合多方参与的多中心商业模式

在使用共识机制,保证数据一致性时的巨大优势(共识机制则是Ripple首先提出的,数据正确性优先的网络交易同步机制,在共识网络中,无论软件代码怎么变动,无法取得共识就无法进入网络,更不要提分叉了)。
——————————————————
PS:稍微自黑下,虽然共识机制绝对能确保任何时候都不会产生硬分叉。但是,这种机制的缺点也比较明显,那就是要取得与其他节点的共识,明显要比当前Bitcoin网络漫长的多。极端情况下,在Ripple共识机制网络中掉线的后果也是很恐怖的。

有可能你家停电一天,第二天整个系统就再也无法与其它Rippled节点取得共识了(共识机制事实上需要超过80%的节点承认了你的数据,你的提交才会被其它节点接受,否则就会被排它的拒绝连接),甚至只能清空自己全部500多GB数据重新同步才能连上其它Ripple节点。

所以目前来说,现有的Rippled端并不适合民用(商用的话影响就比较小,比如RL自己的Rippled节点托管在亚马逊云数据中心,长时间无响应是可以高额索赔的,而且那种地方除了大型灾害几乎不会断),这也是RL一直想改进的方面之一。

⑧ 分布式系统常用的一致性算法有哪些

在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Response Time)、加权法(Weighted )等。其中哈希算法是最为常用的算法. 典型的应用场景是: 有N台服务器提供缓存服务,需要对服务器进行负载均衡,将请求平均分发到每台服务器上,每台机器负责1/N的服务。 常用的算法是对hash结果取余数 (hash() mod N):对机器编号从0到N-1,按照自定义的hash()算法,对每个请求的hash()值按N取模,得到余数i,然后将请求分发到编号为i的机器。但这样的算法方法存在致命问题,如果某一台机器宕机,那么应该落在该机器的请求就无法得到正确的处理,这时需要将当掉的服务器从算法从去除,此时候会有(N-1)/N的服务器的缓存数据需要重新进行计算;如果新增一台机器,会有N /(N+1)的服务器的缓存数据需要进行重新计算。对于系统而言,这通常是不可接受的颠簸(因为这意味着大量缓存的失效或者数据需要转移)。那么,如何设计一个负载均衡策略,使得受到影响的请求尽可能的少呢? 在Memcached、Key-Value Store、Bittorrent DHT、LVS中都采用了Consistent Hashing算法,可以说Consistent Hashing 是分布式系统负载均衡的首选算法。 1、Consistent Hashing算法描述 下面以Memcached中的Consisten Hashing算法为例说明。 由于hash算法结果一般为unsigned int型,因此对于hash函数的结果应该均匀分布在[0,232-1]间,如果我们把一个圆环用232 个点来进行均匀切割,首先按照hash(key)函数算出服务器(节点)的哈希值, 并将其分布到0~232的圆上。 用同样的hash(key)函数求出需要存储数据的键的哈希值,并映射到圆上。然后从数据映射到的位置开始顺时针查找,将数据保存到找到的第一个服务器(节点)上。 Consistent Hashing原理示意图 新增一个节点的时候,只有在圆环上新增节点逆时针方向的第一个节点的数据会受到影响。删除一个节点的时候,只有在圆环上原来删除节点顺时针方向的第一个节点的数据会受到影响,因此通过Consistent Hashing很好地解决了负载均衡中由于新增节点、删除节点引起的hash值颠簸问题。 Consistent Hashing添加服务器示意图 虚拟节点(virtual nodes):之所以要引进虚拟节点是因为在服务器(节点)数较少的情况下(例如只有3台服务器),通过hash(key)算出节点的哈希值在圆环上并不是均匀分布的(稀疏的),仍然会出现各节点负载不均衡的问题。虚拟节点可以认为是实际节点的复制品(replicas),本质上与实际节点实际上是一样的(key并不相同)。引入虚拟节点后,通过将每个实际的服务器(节点)数按照一定的比例(例如200倍)扩大后并计算其hash(key)值以均匀分布到圆环上。在进行负载均衡时候,落到虚拟节点的哈希值实际就落到了实际的节点上。由于所有的实际节点是按照相同的比例复制成虚拟节点的,因此解决了节点数较少的情况下哈希值在圆环上均匀分布的问题。 虚拟节点对Consistent Hashing结果的影响 从上图可以看出,在节点数为10个的情况下,每个实际节点的虚拟节点数为实际节点的100-200倍的时候,结果还是很均衡的。 第3段中有这些文字:“但这样的算法方法存在致命问题,如果某一台机器宕机,那么应该落在该机器的请求就无法得到正确的处理,这时需要将当掉的服务器从算法从去除,此时候会有(N-1)/N的服务器的缓存数据需要重新进行计算;” 为何是 (N-1)/N 呢?解释如下: 比如有 3 台机器,hash值 1-6 在这3台上的分布就是: host 1: 1 4 host 2: 2 5 host 3: 3 6 如果挂掉一台,只剩两台,模数取 2 ,那么分布情况就变成: host 1: 1 3 5 host 2: 2 4 6 可以看到,还在数据位置不变的只有2个: 1,2,位置发生改变的有4个,占共6个数据的比率是 4/6 = 2/3这样的话,受影响的数据太多了,势必太多的数据需要重新从 DB 加载到 cache 中,严重影响性能 【consistent hashing 的办法】 上面提到的 hash 取模,模数取的比较小,一般是负载的数量,而 consistent hashing 的本质是将模数取的比较大,为 2的32次方减1,即一个最大的 32 位整数。然后,就可以从容的安排数据导向了,那个图还是挺直观的。 以下部分为一致性哈希算法的一种PHP实现。点击下载

⑨ 分布式系统常用的一致性算法有哪些

有一些系统设计基础的话,给你推荐几本书吧: 《面向模式的软件架构 卷4:分布式计算的模式语言》出版社:人民邮电出版社 主要讲分布式计算系统软件的设计和实现。 偏软件方向,相对较专业。 《分布式计算(第二版)》出版社:电子工业出版社 主要介绍分布式计算的数学基础和理论,揭示设计分布式系统的底层问题(通信、协调、同步及不确定)和基本的算法概念及下界技术。 容易理解,适合自学。 《分布式系统原理与范型》出版社:清华大学出版社 全书的第一部分讨论了分布式系统的原理、概念和技术,其中包括通信、进程、命名、同步、一致性和复制、容错以及安全。第二部分给出了一些实际的分布式系统:基于对象的分布式系统、分布式文件系统、基于文档的分布式系统以及基于协作的分布式系统,介绍了一些实际系统的设计思想和实现技术。 容易理解,适合自学。

⑩ 一致性hash算法,采用哪种算法实现比较好,比如MD5,CRC32,或者其它

环割法(一致性 hash)环割法的原理如下:

1. 初始化的时候生成分片数量 X × 环割数量 N 的固定方式编号的字符串,例如 SHARD-1-NODE-1,并计算所有 X×N 个字符串的所有 hash 值。

2. 将所有计算出来的 hash 值放到一个排序的 Map 中,并将其中的所有元素进行排序。

3. 输入字符串的时候计算输入字符串的 hash 值,查看 hash 值介于哪两个元素之间,取小于 hash 值的那个元素对应的分片为数据的分片。

数据比较

下面将通过测试对环割法和跳跃法的性能及均衡性进行对比,说明 DBLE 为何使用跳跃法代替了环割法。

  • 数据源:现场数据 350595 条

  • 测试经过:

    1. 通过各自的测试方法执行对于测试数据的分片任务。

    2. 测试方法:记录分片结果的方差;记录从开始分片至分片结束的时间;记录分片结果与平均数的最大差值。

    3. 由于在求模法 PartitionByString 的方法中要求分片的数量是 1024 的因数,所以测试过程只能使用 2 的指数形式进行测试,并在 PartitionByString 方法进行测试的时候不对于 MAC 地址进行截断,取全量长度进行测试。

热点内容
区块链用什么技术开发 发布:2025-07-22 12:59:26 浏览:450
eth矿工费好高啊 发布:2025-07-22 12:56:25 浏览:965
币圈百倍合约传奇 发布:2025-07-22 12:54:12 浏览:441
怎么看以太坊钱包 发布:2025-07-22 12:53:34 浏览:42
比特币能清零吗 发布:2025-07-22 12:53:34 浏览:724
拒收数字货币会违法中国人民银行 发布:2025-07-22 12:48:48 浏览:603
央行发的数字货币叫什么 发布:2025-07-22 12:42:58 浏览:778
神仙岭国际网球中心坐地铁去 发布:2025-07-22 12:37:06 浏览:827
ltc合约如何操作 发布:2025-07-22 12:35:30 浏览:992
以太坊难度增加了多少 发布:2025-07-22 12:26:25 浏览:706