分布式中CAP是什么意思?

1.先说字母的意思

  • C , consistency,翻译过来叫“一致性”;
  • A , availability,"可用性"
  • P, partition tolerance,分区容错性
  1. consistency ,一致性,分3种,强一致,弱一致,最终一致;cap中指的是强一致性;
  • 强一致性,就是分布式中,有很多结点(一个服务多台主机),对同一个情况下,每个结点上的数据只要有读取,返回的数据都是一模一样的; 比如银行卡取钱,必须所有的数据都一致
  • 弱一致性和最终一致性,都是有一个容错时间窗口的,在一段时间之后 ,如果数据能保持一致,那是最终一致;如果过一时间窗口,还有可能不一致,那就是弱一致;比如微信提现,一般在2小时之内到账,这个就是最终一致,时间窗口是2小时
  1. availability,可用性,就是分布式系统,对外表现是保证可用的;不能这次查询正常,下次异常了
  2. partition tolerance,分区容错,意思是一个分布式系统,对外表现的是一个整体,不能因为内部的某个结点异常或者网络故障,导致整个系统异常了;这个是分布式系统必须要保证的。不然就没有分布式的意义了
  3. CAP中,p是必须的,所以ca两个只能满足一种;因为如果要保证数据一致,每个结点数据同步是需要时间的,在这个同步数据的时间内,系统就不可用;如果要可用了,那数据就有可能不强一致了
  4. zookeeper,保证的是CP,强调的时数据强一致;zk是结点之间同步数据的时候,服务是不能保证可用的,如果出现了master网络故障或者下线,需要重新选举leader的这个期间内,服务是不可用的;所以客户端在请求zk服务的时候,要考虑失败重试;
    7.Eurka,保证是AP,数据最终一致,保证可用性; 大多数网站架构的选择,对外提供服务的网站肯定是先保证服务可用了。
  5. redis ,mongdb,是保证CP;涉及到数据存储,服务注册一般都保证数据一致吧。感觉 这是数据存储的基本要求
  6. 满足CA原则的,一般都是单点集群,没有备份数据同步功能 ,扩展性不好
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容