怎么理解分布式系统中的CAP理论:
1、如果数据只是放在分布式系统的一个节点上,那么如果存在节点间网络故障,导致其他节点和该节点之间存在物理上分区了,那么这些节点上则不能访问到这个数据,所以分布式系统是不允许这样情况发生的。所以分布式系统需要解决这个问题,所以就是所谓的分区容错性,也就是这里说的P(Partition tolerance).
2、所以为了解决这个问题,一般分布式系统需要把数据存放在多个节点的多个副本上,这样即便存在分区的故障,也能通过其他节点访问到这些数据。
3、但是多个副本又会存在一个问题,就是这多个副本间怎么保证数据一致性,这就引出了数据一致性问题,分布式系统需要提供一致性的数据。这就是C(Consistency).
4、所有通过某些协议(比如paxos或者raft)保证了多个副本副本,如果在同步数据过程中节点故障导致故障恢复期间数据的是否可以访问的问题又引出数据的可用性,所以分布式系统需要也要解决数据可用性问题,也就是系统不能中断业务。这就是所谓的A(Availability).