《从PAXOS到ZOOKEEPER分布式一致性原理与实践》摘录(1)

分布式特征
1)分布性:空间上随意分布,机器分布情况也是随时变动
2)对等性:没有主从之分,也没有控制整个系统的主机,副本是分布式系统最常见概念;
    副本概念:
        第一种是存在节点,作用是在不同节点存同一份数据,当一个节点存储数据丢失时
              候,可以从其他副本读取数据,解决分布式数据丢失问题;
        第二种是服务副本,为多个节点提供同样服务
3)并发性:针对并发性问题,指分布式系统并发操作共享资源,分布式系统解决的协调发布分布式操作问题的方案
4)缺乏全局时钟:因为分布式系统在空间上随意分布的多个进程,他们之间都是通过通信方式进行沟通交互的,所以
有时候很难定义两个时间先后顺序,原因是系统缺乏一个全局时钟序列控制
5)故障处理预案:分布式处理异常的处理方式

ACID事务
1.原子性:指一个原子操作序列单元,全部成功或者全部不执行;指一序列操作要么全部执行成功,要么回滚
2.一致性:事务执行不能破环数据库完整和一致性,比如这里两个账号互相转账,两个操作必须数据一致性,保持一进一出
同步性
3.隔离性:在并发环境中,并发事务是相互隔离,一个事务执行不能被其他事务干扰,不同事务之间每个事务有各自完整的数据空间,在sql中定义四个事务隔离级别:
1)未授权读取:也叫读未提交,比如A和B事务同时运行,A事务对变量j做自增操作,B事务看到的j是不同时刻的中间
   值,比如1,2,3,4等等
2)授权读取:也称读已提交,他的区别是,B事务只能读取到A事务最终提交的j变量值
3)可重复读取:只事务在第一次读取到的数据一直不变,比如B事务第一次读取到的j是1,那么在B这个事务始终都是1
4)串行化:指事务只能一个一个执行,不能并发执行,最严格执行方式
4.持久性:是事务如果提交了,那么就保持数据一致性,就算是宕机或者故障,也要能够恢复到事务提交状态

分布式理论
分布式最大的挑战是兼顾可用性和一致性,一致性是指满足分布式ACID性,可用性是保持24可用
1.CAP理论:这个理论告诉我们一个分布性系统不可能同时满足一致性、可用性、分区容错性;最多同时满足其中两条
1)一致性:指多个副本数据得到的更新执行是一致性的,对于各个节点应该是一致的
2)可用性:只在一定时间期限内返回正常结果,时间期限是指对于不同系统要求时间期限,比如大数据HIVE平台的
一次查询期望值是20秒,对于搜索引擎则是0.5秒,所以是不同的;正常结果则是正常业务操作返回结果集
3)网络容错性:指网络故障时候,仍能够提供对外提供一致性和可用性,除非全部发生故障
   因为是分布式系统所以网络容错性必须是个基本要求,分布式系统不同节点分布在不同子网络上面,如果放弃
   网络容错性意味着回归到集中性解决方案,所以架构师要做的事一致性和可用性之间做均衡

2.BASE 理论
   是对cap理论的进一步延伸扩展,既然无法做的可用性和一致性完美兼顾,那么就从三个方面来达到最终一致性解决
   1.基本可用,就是允许损失部分可用性来达到:响应时间损失和功能损失;
   2.弱状态:允许副本数据在不同节点之间同步的存在延时
   3.最终一致性:能够保证发生故障情况下,数据达到一致性状态取决网络延迟,系统负载,数据复制方案

   最终一致性主要五种方式
   1.因果一致性:指B进程用到A的数据时候,务必在A对数据进行更新事务提交后获取到
   2.读己之所写:指进程在操作数据时候,不会读取到比自己版本还低的旧的数据
   3.会话一致性:对系统访问能够在一个会话里面读取都是最新数据
   4.单调读一致性:指进程从一个系统里面读取出的数据,后续在读取不会是比这个值还晚的之
   5.单调写一致性:一个系统需要保证同一进程写操作被顺序执行

   总结:BASE 理论面向的是大型高可用扩展分布式系统,他强调通过牺牲一致性获取可用性,并且允许一段时间
   内数据不一致性,但是最终结果是一致性
 

猜你喜欢

转载自fqg05.iteye.com/blog/2398651