首页 > 编程知识 正文

分布式系统原理介绍pdf,简单介绍分布式系统

时间:2023-05-03 14:47:29 阅读:189973 作者:2902

分布式系统的细节---基础知识(CAP )之前,文章是分布式系统的细节)基础知识)通信)中写的,在RPC中可以看到通信的重要性,但分布式系统还有一个地方,就是数据的完整性(Consistency )、可用性) 是怎么解决的呢? 那么,这篇文章就来谈谈CAP们之间的“爱与恨~~”吧。

一. CAP定理图

那么,详细介绍一下CAP吧。

3358 www.Sina.com/cap http://www.Sina.com/cap根据美国著名科学家Eric brewer 2000年提出的理论,当技术体系结构从集中式体系结构演进为分布式体系结构时如上图所示,数据处理系统无法同时满足可用性、一致性和分区容错性。 那么为什么不能满足呢? 这三个名词具体表达了什么意思呢?

二.一致性2.1一致性分布式系统中定义的所有数据备份是否在同一时间具有相同的值。 (与所有节点访问相同的最新数据副本相同)

2.2一致性模型分布式系统中使用的一致性模型的几个1.1 参考网站:

一致性模型。 3359 en.Wikipedia.org/wiki/consistency _ model # relaxed _ memory _ consistency _ models

其实,一致性模型是数据和进程之间的约定。 通常,对一个数据项执行读取操作时,可能希望返回自上次操作以来的结果。 在没有全局时钟的情况下,准确定义哪个操作是最后一个操作非常困难。 所以,有一系列的一致性模式。

假设发生了以下情况:

行x将客户机a复制到节点m和节点n,并将行x写入节点m。 一定时间t后,客户机b从节点n读取行x。 一致性模型必须确定客户端b是否正在查看来自客户端a的写操作。

理论 的来历

当客户端请求写入时,写入请求将转发到主服务器。 主服务器向备份发送请求以执行更新。 然后,服务器从所有备份接收更新确认,并向客户端发送写入完成确认。 任何客户端都可以本地读取最近可用的更新。 此协议的折衷方案是,发送更新请求的客户端可能需要很长时间才能得到确认。 要解决此问题,请在本地执行更新并请求其他备份进行更新。 非阻塞主备份协议并不能保证所有备份服务器的更新一致性。 但是,性能提高了。 在主备份协议中,所有进程都引用同一写入顺序。 这是因为此协议根据全局唯一的时间对所有传入的写入进行排序。 块协议保证过程检查最后一次写入的结果。

一致性模型的类型

主备份协议(本地写入)的示例。 要更新数据项,过程首先将数据项移动到该位置。 因此,此方法允许每个进程在本地执行连续写入操作,同时读取数据项的本地副本。 主数据库更新完成后,更新将传输到其他副本,并在本地更新所有副本。 这种非阻塞方法可以带来改善。 本地写入协议图表显示了基于主协议的本地写入方法。 进程请求数据项x内的写入。 当前服务器被认为是数据项x的新主要服务器。 执行写入操作并完成请求后,主服务器向其他备份服务器发送更新请求。

三. CAP-Availability (可用性) 3.1可用性定义可以为每个请求获得正确的响应——,但不能确保获得的数据是最新的数据。 群集中的某些节点发生故障后,整个群集是否仍能响应客户端的读写请求。

3.2可用性一周(168小时)可用100小时的单元可用性为100/168。 可用性值通常用小数表示。 例如,0.9998。 高可用性APP应用程序使用几个称为9的度量,这些度量对应于小数9的数量。 在此系统中,“5个9”等于0.99

999(或者99.999%)的可用性。

       返回结果,是可用性的一个重要指标,他要求系统请求后,返回一个正常相应结果。正常的相应结果通常能够明确的反映出对请求的处理结果,即成功或失败。

四、 CAP-Partition tolerance(分区容错性)

       分区容错性其实是约束了分布式系统需要具有如下的特性:分布式在遇到任何网络分区故障的时候,仍然需要保证对外提供满足一致性和可用性的服务,除非整个网络均已瘫痪。也就是说,它容忍错误的出现,在发生错误的情况下可以继续进行操作。

       网络分区是指的在分布式系统当中,不同的节点分布在不同的子网络中,由于出现了一些故障导致自网络之间不能正常的进行连通,但是他们又是各自是正常的。这就导致了一种情况,整个网络变成了若干个孤立的区域。当然值得注意的是组成分布式系统的每个节点的进入和退出可以看作是一个特殊的网络区域。

五、CAP-爱恨情仇(为什么不能同时保证)

                                    

       既然是分布式系统,我们来想象两个节点。如果说至少允许一个节点更新状态会导致数据不一致,那么这个时候就会导致“C-一致性”的缺失。如果要保证数据的一致性,那么将分区一侧的节点设置为不可用,那么就会导致“A-可用性”的丧失。那么如何保证A-C都可以呢?就是两个节点相互通信,然而这个时候就会导致P的丧失,而P又是不可或缺的,所以就导致了一个比较尴尬的事件的出现~~

六、CAP延伸版--BASE

       架构师Dan Pritchett源于对大规模分布式系统的实践总结,在ACM上发表文章提出BASE理论,BASE理论是对CAP理论的延伸,核心思想是即使无法做到强一致性(Strong Consistency,CAP的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性(Eventual Consitency)。

BASE是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency)。

(1)基本可用(Basically Available)

基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。

电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供降级服务。这就是损失部分可用性的体现。

(2)软状态( Soft State)

软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。mysql replication的异步复制也是一种体现。

(3)最终一致性( Eventual Consistency)

最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。                                                                                                                     

                                                                                                                                       后文BASE参考 分布式系统的BASE理论。

欢迎订阅关注公众号(JAVA和人工智能)                                                            获取更多免费书籍、资源、视频资料

 

                                        

文章回顾链接:

 1,分布式系统详解--基础知识(概论)

 2,分布式系统详解--基础知识(线程)

 3,分布式系统详解--基础知识(通信)

 4,分布式系统详解--基础知识(CAP)

 5,分布式系统详解--基础知识(安全)

 6,分布式系统详解--基础知识(并发)

 7,分布式系统详解--架构简介(微服务)

 8,分布式系统详解--Linux(权限)

 9,分布式系统详解--框架(Hadoop-单机版搭建)

10,分布式系统详解--架构(Hadoop-克隆服务器)

11,分布式系统详解--框架(Hadoop-集群搭建)

12,分布式系统详解--框架(Hadoop-Ssh免密登陆配置)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。