分布式系统就是将一个单体项目拆分成多个子项目,每个子项目之间可以实现通信从而对外实现一致性。因为拆分成了多个子项目,每个子项目都可以单独进行管理维护,甚至使用不同的技术。
• C 一致性: 数据一致,每个服务的数据在同一时刻数据相同
• A 可用性:服务可用,服务器能正常访问并且相应
• P 分区容错性: 能够解决分区问题。网络故障导致分布式系统各组件之间产生分区,无法同时满足一致性和可用性
CAP最多同事满足其中的两个情况
BASE的核心思想是:
既然无法做到强一致性,然而每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。
BASE理论的三个要点为:
基本可用(Basically Available)当系统出现故障时,损失部分功能的前提下保障系统基本功能的可用性,相比较正常的系统而言, 可能是响应时间的增大, 亦或者是功能的降级。(什么是功能降级?)
软状态(Soft State)软状态指的是:允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时。相对于原的性的强一致硬状态而言,我们称之为软状态。
最终一致性(Eventually Consistent)软状态不可能一直是软状态,必须有个时间期限。在期限过后,应当保证所有副本保持数据一致性,从而达到数据的最终一致性。这个时间期限取决于网络延时、系统负载、数据复制方案设计等等因素。