CA:如果不要求 P (不允许分区),则 C (强一致性)和 A (可用性)是可以保证的。但放弃 P 的同时也就意味着放弃了系统的扩展性,也就是分布式节点受限,没办法部署子节点,这是违背分布式系统设计的初衷的。因此在这里只讨论实现了 CP 或者 AP 的架构/系统。 CP Zookeeper Paxos 协议我从工作的时候就了解,基本上过目就忘非常难理解。想要手撸一个 Paxos 协议太难了。 Etcd Raft 协议初认识的时候简单,源码比 Paxos 也简单点,但是实现起来有点难。 Redis Gossip 协议算法简单,实现起来也容易。 AP Euraka 理解起来简单,实现起来也简单。 个人感觉 Euraka 的通信协议最简单,其次是 Gossip ,这里说的是手撸的难度。