图说明
–》对应nosql而言,**分区容忍性(即分布式容忍性--即数据是分布式存储的!!,如es,mongo,redis等有分片和主从保证分布式,而mysql等不是分布式的!!)
**必须实现,分布式系统他可能不是部署在同城
注意:上面的第二个,也是一般会实现弱一致性
BASE模型是CAP牺牲强一致性、保证可用性的折中方案:
1、basically available-基本可用
分布式系统发生不可预知的故障时,允许损失部分可用性,如服务降级等等
2、soft state-弱状态
分布式系统不同节点间某个时刻数据允许存在中间状态,不同节点的数据副本之间进行同步时可能存在时延,如主从同步
3、eventually consistent-最终一致
分布式系统不同节点的所有数据副本,在经过一段时间数据同步后,最终达到一致状态,即保证最终一致性,不保证实时一致性
`我们通常接触的常见中间件,如mysql、zookeeper、redis、elasticsearch等都是基于BASE理论建立的`
原文链接:https://blog.csdn.net/xiaofengcanyuexj/article/details/52555230
zk应该是强一致性?
eruke不是强一致性,是最终一致性,eruke集群中采用的是nopeer模式,
一台eruke挂了或更新接口数据,数据不会等完全同步了才对外提供访问不中断只是此时外界访问的数据不是跟新及时的(挂了的就会报错了)