在分布式或分散式多代理程序平台中达成通用协议的过程。这对于消息传递系统很重要。
例子–
网络中的许多流程决定选举领导者。每个过程都以争取领导力开始。在传统或传统的分布式系统中,我们应用共识来确保可靠性和容错能力。这意味着,在分散的环境中,当您有多个个人参与方时,他们可以做出自己的决定,那么可能会发生某些节点或某些参与方恶意工作或以故障个人身份进行工作的情况。因此,在那些特殊情况下,重要的是要做出决定或达成共同的观点。因此,在人们可能会恶意行为或人们可能以错误的方式使工作崩溃的环境中拥有共同的观点是主要的困难。因此,在这种分布式环境下,我们的目标是确保可靠性,这意味着在存在故障的人员的情况下确保正确的操作。
特征 :
- 它确保了分布式系统中的可靠性和容错能力。
- 在有故障的个人在场的情况下,这是“确保正确操作”。
例子–
在数据库中提交事务,状态机复制,时钟同步。
如何达成分布式共识:
为了达成分布式共识,需要遵循一些条件。
- 终止–
每个无故障的过程都必须最终决定。 - 协议 –
每个非故障过程的最终决定必须相同。 - 有效性 –
每个非故障过程都必须以相同的值开始和结束。 - 正直 –
每个正确的人最多只能决定一个值,而决定的值必须由某个人提出。
这是一个验证标准,因此,基本上,我们应该以某个值作为某个过程的初始值来做出决定,因为当约定的值反映了任何人的初始选择时,达成协议是很愚蠢的。
分布式共识协议的正确性:
可以通过以下两个属性对其进行描述。
- 安全性–
它确保您永远不会收敛到错误的值,或者网络中正确的个人永远不会收敛到错误的值。 - 活力财产–
它指出,每个正确的值最终都必须被接受,这意味着好事最终将会发生。
分布式共识的应用:
- 在容错环境中的领导者选举,用于启动某些全局操作而不会引入单个故障点。
- 在分布式网络中保持一致性。假设您有不同的节点监视相同的环境。如果其中一个节点崩溃,则共识协议可确保针对此类故障的鲁棒性。