分布式共识算法有哪些具体应用场景?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4669个文字,预计阅读时间需要19分钟。
背景+共识算法主要目的是为了保证同一份数据在多个节点上的一致性,以满足CP要求。+共识(Consensus)与一致性(Consistency)的区别:一致性是指不同副本之间的数据差异,而共指同一份数据在不同节点上的同步。
背景分布式共识算法主要目的是为了保证同一份数据在多个节点上的一致性,以满足CP要求。
共识(Consensus)与一致性(Consistency)的区别:一致性是指数据不同副本之间的差异,而共识是指达成一致性的方法与过程。由于翻译的关系,很多中文资料把 Consensus 同样翻译为一致性,导致网络上大量的“二手中文资料”将这两个概念混淆起来,如果你在网上看到“分布式一致性算法”,应明白其指的其实是“Distributed Consensus Algorithm”。
如果你有一份很重要的数据,想要确保它不会丢失,你会怎么做?
你可能会买几块硬盘或U盘,把数据复制上去。
而在分布式系统中,我们做法也是一样的,通过备份,但是这种环境下,数据是动态的,各个备份系统之间的网络是不可靠的,也就是复制可能会失败。所以引出了以下问题:
如果你有一份随时变动的数据,要确保它正确地存储在网络中的几台不同的机器上,你会怎么做?
你可能会想到数据同步:每当有数据变化,把变化的数据在各个节点之间复制视作一种事务操作,所有机器都成功写入硬盘后,才宣告数据同步完成。这种可以保证节点间的数据是绝对一致的,但可用性大大降低。这种以同步为代表的数据复制方法,称为状态转移(State Transfer),通常要牺牲可用性。
本文共计4669个文字,预计阅读时间需要19分钟。
背景+共识算法主要目的是为了保证同一份数据在多个节点上的一致性,以满足CP要求。+共识(Consensus)与一致性(Consistency)的区别:一致性是指不同副本之间的数据差异,而共指同一份数据在不同节点上的同步。
背景分布式共识算法主要目的是为了保证同一份数据在多个节点上的一致性,以满足CP要求。
共识(Consensus)与一致性(Consistency)的区别:一致性是指数据不同副本之间的差异,而共识是指达成一致性的方法与过程。由于翻译的关系,很多中文资料把 Consensus 同样翻译为一致性,导致网络上大量的“二手中文资料”将这两个概念混淆起来,如果你在网上看到“分布式一致性算法”,应明白其指的其实是“Distributed Consensus Algorithm”。
如果你有一份很重要的数据,想要确保它不会丢失,你会怎么做?
你可能会买几块硬盘或U盘,把数据复制上去。
而在分布式系统中,我们做法也是一样的,通过备份,但是这种环境下,数据是动态的,各个备份系统之间的网络是不可靠的,也就是复制可能会失败。所以引出了以下问题:
如果你有一份随时变动的数据,要确保它正确地存储在网络中的几台不同的机器上,你会怎么做?
你可能会想到数据同步:每当有数据变化,把变化的数据在各个节点之间复制视作一种事务操作,所有机器都成功写入硬盘后,才宣告数据同步完成。这种可以保证节点间的数据是绝对一致的,但可用性大大降低。这种以同步为代表的数据复制方法,称为状态转移(State Transfer),通常要牺牲可用性。

