实践CAP

CAP分别代表:

一致性(Consistency):分布式系统中各节点状态的一致性

可用性(Availability):在规定的时间内对请求正常应答

分区容忍性(Partition Tolerance):分布式系统中部分节点宕机或网络故障等

CAP理论:

作为分布式系统,理论上讲是一定要支持分区容忍性,不可能保证不出现网络分区的问题。所以当出现网络分区时,那么就只能在C和A之间选择,

  • 选择一致性(C)而牺牲可用性(A):为了保证服务器A和B上的数据是一致的,服务器A决定暂停对外提供数据写入服务,从而保证了服务器A和B上的数据是一致,但是牺牲了可用性。
  • 选择可用性(A)而牺牲一致性(C):为了保证服务不中断,服务器A先把数据写入到了本地,然后返回客户端,从而让客户端感觉数据已经写入了。这导致了服务器A和B上的数据就不一致了。

当然现实中,也不是完全要非C即A或非A即C这么绝对,而是有时候可以根据业务需要相对选择。

例如:在允许最终一致性的情况下实现可用性