一个分布式系统最多只能同时满足下面三个特性中的两个:一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)

  • 一致性:指的是所有的客户端在相同的时间点看到的是同样的数据,而不管他们连接的是哪个服务器。
  • 可用性:指的是即便有节点发生故障,任意客户端发出的请求都能被响应。
  • 分区容错性:分区意味着两个节点之间的通信中断。分区容错性的意思是尽管网络被分区,系统依然可以继续运行。

由于网络故障无法避免,所以分布式系统在现实世界必须容忍网络分区。