桓侯再生txt下载,广东外语艺术职业学院分数线,温柔前夫 别耍酷
2000 年 7 月,加州大学伯克利分校的 eric brewer 教授在 acm podc 会议上提出 cap 猜想。2年后,麻省理工学院的 seth gilbert 和 nancy lynch 从理论上证明了 cap。之后,cap 理论正式成为分布式计算领域的公认定理。
cap 理论为:一个分布式系统最多只能同时满足一致性(consistency)、可用性(availability)和分区容错性(partition tolerance)这三项中的两项。
通过 cap 理论,我们知道无法同时满足一致性、可用性和分区容错性这三个特性,那要舍弃哪个呢?
对于多数大型互联网应用的场景,主机众多、部署分散,而且现在的集群规模越来越大,所以节点故障、网络故障是常态,而且要保证服务可用性达到 n 个 9,即保证 p 和 a,舍弃c(退而求其次保证最终一致性)。虽然某些地方会影响客户体验,但没达到造成用户流程的严重程度。
对于涉及到钱财这样不能有一丝让步的场景,c 必须保证。网络发生故障宁可停止服务,这是保证 ca,舍弃 p。貌似这几年国内银行业发生了不下 10 起事故,但影响面不大,报道也不多,广大群众知道的少。还有一种是保证 cp,舍弃 a。例如网络故障是只读不写。
孰优孰略,没有定论,只能根据场景定夺,适合的才是最好的。
ebay 的架构师 dan pritchett 源于对大规模分布式系统的实践总结,在 acm 上发表文章提出 base 理论,base 理论是对 cap 理论的延伸,核心思想是即使无法做到强一致性(strong consistency,cap 的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性(eventual consitency)。
最终一致性(eventual consistency): 最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。
acid 是传统数据库常用的设计理念,追求强一致性模型。base 支持的是大型分布式系统,提出通过牺牲强一致性获得高可用性。
acid 和 base 代表了两种截然相反的设计哲学,在分布式系统设计的场景中,系统组件对一致性要求是不同的,因此 acid 和 base 又会结合使用。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
浅析我对 String、StringBuilder、StringBuffer 的理解
使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)
Springboot整合freemarker 404问题解决方案
引入mybatis-plus报 Invalid bound statement错误问题的解决方法
网友评论