分布式系统 CAP理论
CAP 理论
什么是分布式系统?
由于单台机器无法满足要求,扩展出多台机器一起完成相同的事件,它们之前为了数据一致肯定要进行通信同步,这就导致节点间CAP问题。
- C:一致性:节点间数据的同步,在单体上数据都是一致的,在多节点上,就要进行数据的同步,自然会出现数据的不一致,这是由于同一时刻会访问到不同数据来说的。如果想要实现多节点间的一致性,那就要加锁,在访问未同步的节点时就会阻塞,同步完成数据一致后可以访问。
- A:可用性:同一时刻,所以节点都可用。
- P:分区容错性:分区容错性是分布式系统肯定有的,也就是既然是分布式肯定要允许网络的不稳定性,除非是单机部署,各节点都在同一台机器。 当两个节点无法进行网络通信,不管是网络问题还是机器宕机导致的无法通信,都是产生了分区,比如主节点宕机了,从节点上位了,那分区容错性就能保证,且从节点越多,分区容错性越强,但与一致性成反比。保证分区容错性自然就不能是单机结构。
CAP理论:分布式系统默认有分区容错性,在保证分区容错性P下,当保证一致性时,就要进行同步,就不能保证可用性。而如果要保证可用性,那就表示当数据出现不一致时,仍然可用,那就无法保证数据一致性。
单机下是CA,但CAP是在分布式系统下的(有多个相同的节点一起完成相同的事),CAP对于单机自然没有意义,也不适用。