引言
CAP 是分布式系统、特别是分布式存储领域中被讨论最多的理论,“什么是 CAP 定理?” 在 Quora 分布式系统分类下排名 FAQ 的 No.1。CAP 在程序员中也有较广的普及,它不仅仅是 “C、A、P 不能同时满足,最多只能 3 选 2
”,以下尝试综合各方观点,从发展历史、工程实践等角度讲述 CAP 理论。希望大家透过本文对 CAP 理论有更多地了解和认识。
CAP 是分布式系统、特别是分布式存储领域中被讨论最多的理论,“什么是 CAP 定理?” 在 Quora 分布式系统分类下排名 FAQ 的 No.1。CAP 在程序员中也有较广的普及,它不仅仅是 “C、A、P 不能同时满足,最多只能 3 选 2
”,以下尝试综合各方观点,从发展历史、工程实践等角度讲述 CAP 理论。希望大家透过本文对 CAP 理论有更多地了解和认识。
狭义的分布式系统 指 由网络连接的计算机系统,每个节点独立地承担计算或存储任务,节点间通过网络协同工作。广义的分布式系统 是一个相对的概念,正如 Leslie Lamport 所说:
What is a distributed systeme. Distribution is in the eye of the beholder.
To the user sitting at the keyboard, his IBM personal computer is a nondistributed system.
To a flea crawling around on the circuit board, or to the engineer who designed it, it’s very much a distributed system.
一致性 是分布式理论中的 根本性问题,近半个世纪以来,科学家们围绕着一致性问题提出了很多理论模型,依据这些理论模型,业界也出现了很多工程实践投影。下面我们从一致性问题、特定条件下解决一致性问题的两种方法 (2PC
、3PC
) 入门,了解最基础的分布式系统理论。
分布式系统理论进阶 - Paxos 介绍了一致性协议 Paxos,今天我们来学习另外两个常见的一致性协议——Raft 和 Zab。通过与 Paxos 对比,了解 Raft 和 Zab 的核心思想、加深对一致性协议的认识。
选举 (election) 是分布式系统实践中常见的问题,通过打破节点间的对等关系,选得的 leader(或叫 master、coordinator)有助于实现事务原子性、提升决议效率。 多数派 (quorum) 的思路帮助我们在网络分化的情况下达成决议一致性,在 leader 选举的场景下帮助我们选出唯一 leader。租约 (lease) 在一定期限内给予节点特定权利,也可以用于实现 leader 选举。
下面我们就来学习分布式系统理论中的选举、多数派和租约。
分布式系统理论基础 – 一致性、2PC 和 3PC 一文介绍了一致性、达成一致性需要面临的各种问题以及 2PC、3PC 模型,Paxos 协议在节点宕机恢复、消息无序或丢失、网络分化的场景下能保证决议的一致性,是被讨论最广泛的一致性协议。
Paxos 协议同时又以其 “艰深晦涩” 著称,下面结合 Paxos Made Simple、The Part-Time Parliament 两篇论文,尝试通过 Paxos 推演、学习和了解 Paxos 协议。