前言
随着社会的发展,技术的进步,以前的大型机架构很显然由于高成本、难维护等原因渐渐地变得不再那么主流了,企业级应用架构也随之发展,分布式应运而生。
什么是分布式?
分布式系统是其组件分布在连网的计算机上,组件之间通过传递消息进行通信和动作协调的系统。
分布式的特点:
1.引入网络,依赖网络通信来运作
2.数据在某个时间点是不同步的
3.时间在各个组件之间也可能不一致的
分布式事务
CAP
一个分布式系统不可能同时满足一致性,可用性,和分区容错性,
最多只能满足两个特性
一致性©
数据需要保持一致,如果有一个添加、修改或删除操作之后,需要所有读取操作都能够读到正确的结果
可用性(A)
可用性是指系统提供的服务必须一直处于可用的状态。
分区容错性§
分布式环境下一般会分作多个网络分区,以避免网络异常导致服务不可用,但同样要解决一个分区故障的时候,其他分区依然可以提供一致性的可用服务,但是无法同时满足一致性和可用性
BASE
可用性和一致性的权衡
基本可用(Basically Available)
基本可用是指的损失部分可用性,但不能是完全不可用,比如响应时间的损失,功能上的损失
软状态(Soft state)
允许数据存在中间状态,即允许数据副本之间同步的延时
最终一致性(Eventually cosistent)
最终一致性是强调系统中所有副本经过一段时间后最终能够达到一个一致的状态,而不是实时的一致性