大家好,又见面了,我是你们的朋友全栈君。
- 在分布式系统中,有一个基本原则叫做CAP,consistence,一致性,availability,可用性,partition tolerance分区容错性。
- 一致性,在这里指的是分布式系统的各个副本的值要保持同步,这里强的是空间上的一致,注意和数据库中ACID中的一致性相区分,那个一致性指的是事务执行前后的逻辑一致性,比如你转1000块给别人,不能你的账户少了1000块,对方的账户却没有多1000块。
- 可用性,指的是当client发出数据读写请求时,要在足够短的时间内做出响应。
- 分区容错性指的是,在不稳定和不可靠的网络环境下,节点可能出现失联或者荡机,网络可能出现分区子网,在这种情况下仍然能保证数据不出错。
- 所以,分区容错性是我们必须最终要保证的,但是一致性和可用性是一对矛盾的东西。所以在三者中,我们只能取两个。
- 为啥一致性和可用性是一对矛盾的东西呢?因为要实现一致性,在本质上都是进行副本之间的同步,而这个是需要花时间的,如果要保证强一致性,那么在同步的这一段时间中,是不可用的。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/167308.html原文链接:https://javaforall.cn