分布式相关基础理论

分布式环境下面临的问题:

网络通信:网络本身的不可靠性,因此会涉及到一些网络通信问题

三态:分布式架构里面,除了成功、失败、超时

分布式事务 :ACID特性

中心化和去中心化:冷备或者热备

经典的CAP/BASE理论

CAP
C(一致性 Consistency): 所有节点上的数据,时刻保持一致
A可用性(Availability):每个请求都能够收到一个响应,无论响应成功或者失败
P分区容错 (Partition-tolerance):表示系统出现脑裂以后,可能导致某些server与集群中的其他机器失去联系

分布式系统因为网络的存在,必须存在P,所以我们的选择经常是牺牲掉C 或者牺牲掉A。于是就有了:CP / AP

CAP理论仅适用于原子读写的Nosql场景,不适用于数据库系统

BASE
基于CAP理论,CAP理论并不适用于数据库事务(因为更新一些错误的数据而导致数据出现紊乱,无论什么样的数据库高可用方案都是
徒劳) ,虽然XA事务可以保证数据库在分布式系统下的ACID特性,但是会带来性能方面的影响;

eBay尝试了一种完全不同的套路,放宽了对事务ACID的要求。提出了BASE理论
Basically available (基本可用): 数据库采用分片模式, 把100W的用户数据分布在5个实例上。如果破坏了其中一个实例,仍然可以保证
80%的用户可用

soft-state(软状态): 在基于client-server模式的系统中,server端是否有状态,决定了系统是否具备良好的水平扩展、负载均衡、故障恢复等特性。
Server端承诺会维护client端状态数据,这个状态仅仅维持一小段时间, 这段时间以后,server端就会丢弃这个状态,恢复正常状态

Eventually consistent:数据的最终一致性

猜你喜欢

转载自blog.csdn.net/world6/article/details/79710789