据我了解,在分布式系统中,我们应该处理网络分区故障,这可以通过使用相同数据的多个副本来解决。
这是我们唯一使用共识算法的地方吗?2PC/3PC/Paxos 有什么区别(paxos 是 3PC 的修改版吗?如果是,那么 2PC/3PC ,PC 也是一种共识算法?)
据我了解,在分布式系统中,我们应该处理网络分区故障,这可以通过使用相同数据的多个副本来解决。
这是我们唯一使用共识算法的地方吗?2PC/3PC/Paxos 有什么区别(paxos 是 3PC 的修改版吗?如果是,那么 2PC/3PC ,PC 也是一种共识算法?)
拥有相同数据的多个副本并不能“解决”网络分区问题。尽管冗余对于处理任何类型的故障都是必不可少的:)
关于网络分区还有许多其他问题。通常,为了增加对网络分区的容忍度,您使用依赖于仲裁而不是总通信的算法,在仲裁方法中,只要 2f 中的 f+1 个节点可以访问,您仍然可以在分区的一侧取得进展。例如 Paxos 使用 quorum 方法。很明显,像 2PC 这样的协议在任何类型的网络分区的情况下都无法取得进展,因为它需要所有节点的“投票”。
2PC/3PC/Paxos 有什么区别(paxos 是 3PC 的修改版吗?如果是,那么 2PC/3PC ,PC 也是一种共识算法?)
2PC/3PC/Paxos 都是共识协议的变体,尽管 2PC 和 3PC 通常被描述为处理更具体的“分布式系统中的原子提交”场景,这本质上是一个共识问题。2PC、3PC、Paxos 相似但不同。您可以在网络上轻松找到有关每种算法的详细信息。
这是我们唯一使用共识算法的地方吗?
共识协议在分布式系统中有许多用例,例如:原子提交、原子广播、领导者选举或基本上任何需要一组进程就某个值或动作达成一致的算法。
警告:分布式系统的共识协议和相关问题并非易事,您需要阅读一些内容才能深入了解。如果您喜欢阅读学术论文,您可以在网上找到大多数著名的论文,例如 Leslie Lamport 的“Paxos made simple”,或者您可以通过谷歌搜索找到好的博文。在我看来,paxos 的 wiki-article 的质量也非常好!
希望这可以回答您的一些问题,尽管我可能向您介绍了更多!(如果你有兴趣,你有一些研究要做)。