分布式系统知识点

分布式系统定义

分布式系统 是建立在网络之上的软件系统。 在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。 (与计算机网络区别开)
例如:小明的公司有3个系统: 系统A、系统B和系统C ,这三个系统所做的业务不同,被部署在3个独立的机器上运行,他们之间互相调用(当然是跨域网络的), 通力合作完成公司的业务流程。将不同的业务分布在不同的地方, 这就构成了一个分布式的系统,如图
在这里插入图片描述

中间件(独立的系统级软件)能够屏蔽操作系统和网络协议的差异

是一种独立的系统软件服务程序,能够达到资源共享、功能共享的目的。分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。中间件=平台+通信,这也就限定了只有用于分布式系统中才能叫中间件。更多的应用软件被要求在许多不同的网络协议、不同的硬件生产厂商以及不一样的网络平台和环境上运营。需要开发多种应用程序来达到运营

分布式系统与计算机网络的共同点及区别

共同点(物理结构)

分布式系统和计算机网络系统的共同点是:多数分布式系统是建立在计算机网络之上的,所以分布式系统与计算机网络在物理结构上是基本相同的。

不同点(软件结构— 分布式/网络操作系统的区别)

分布式系统:
系统中存在一个以全局的方式管理计算机资源的分布式操作系统。通常,对用户来说,分布式系统只有一个模型或范型。在操作系统之上有一层软件中间件负责实现这个模型。一个著名的分布式系统的例子是万维网(World Wide Web),在万维网中,所有的一切看起来就好像是一个文档(Web页面)一样。
分布式操作系统:
是以全局方式管理系统资源的,它可以为用户任意调度网络资源,并且调度过程是“透明”的。当用户提交一个作业时,分布式操作系统能够根据需要在系统中选择最合适的处理器,将用户的作业提交到该处理程序,在处理器完成作业后,将结果传给用户。在这个过程中,用户并不会意识到有多个处理器的存在,这个系统就像是一个处理器一样。
计算机网络:
在计算机网络中,这种统一性、模型以及其中的软件都不存在。用户看到的是实际的机器,计算机网络并没有使这些机器看起来是统一的。如果这些机器有不同的硬件或者不同的操作系统,那么,这些差异对于用户来说都是完全可见的。如果一个用户希望在一台远程机器上运行一个程序,那么,他必须登陆到远程机器上,然后在那台机器上运行该程序。
网络操作系统:
要求网络用户在使用网络资源时首先必须了解网络资源,网络用户必须知道网络中各个计算机的功能与配置、软件资源、网络文件结构等情况,在网络中如果用户要读一个共享文件时,用户必须知道这个文件放在哪一台计算机的哪一个目录下;

PS:网络操作系统的定义

网络操作系统 ,是一种能代替操作系统的软件程序,是网络的心脏和灵魂,是向网络计算机提供服务的特殊的操作系统。借由网络达到互相传递数据与各种消息,分为服务器(Server)及客户端(Client)。 而服务器的主要功能是管理服务器和网络上的各种资源和网络设备的共用,加以统合并控管流量,避免有瘫痪的可能性,而客户端就是有着能接收服务器所传递的数据来运用的功能,好让客户端可以清楚的搜索所需的资源。

分布式系统与集群

1 分布式
2 集群——负载均衡 、弹性 、失效转移
分布式和集群
分布式与集群的联系

分布式是指将一个业务拆分不同的子业务,分布在不同的机器上执行(并发)
集群是指多台服务器集中在一起,实现同一业务,可以视为一台计算机(可用 解决单点故障)
一个云计算平台,就是通过一套软件系统把分布式部署的资源集中调度使用。要应对大并发,要实现高可用,既需要分布式,也离不开集群。

分布式系统的CAP理论:

一致性(C)—强一致性
在分布式系统中的所有数据备份,在同一时刻是同样的值。(等同于所有节点访问同一份最新的数据副本)

在分布式系统当中,针对不同情况以及不同要求下的一致性,设计了多种不同的模型。我们可以简单做一个总结,将它们分为三类:
要求当下更新成功的数据立即生效,在后续的访问当中都能返回最新的结果—强一致性。
如果能容忍在更新发生之后,部分情况无法访问到最新数据—弱一致性。
如果能容忍更新后一段时间内无法访问到最新数据,但最终可以保证结果准确,这是—最终一致性。

● 可用性(A)
系统一直可用,而且服务一直保持正常。

一个高可用性的分布式系统,必须对用户的每一个请求做出响应。不可以出现无法访问或者是响应超时等影响用户体验的情况。在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。

● 分区容错性(P)

以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。

在分布式系统当中,CAP三个特性我们是无法同时满足的,必然要舍弃一个。三者舍弃一个,显然排列组合一共有三种可能。

舍弃A,保留CP
一个系统保证了一致性和分区容错性,舍弃可用性。也就是说在极端情况下,允许出现系统无法访问的情况出现,这个时候往往会牺牲用户体验,让用户保持等待,一直到系统数据一致了之后,再恢复服务。

舍弃C,保留AP
这种是大部分的分布式系统的设计,保证高可用和分区容错,但是会牺牲一致性。
举个例子,我们在12306买票的时候就经常会遇到。在我们点击购买的时候,系统并没有提示没票。等我们输入了验证码,付款的时候才会告知,已经没有票了。这就是因为我们在点击购买的时候,数据没有达成一致性,在付款校验的时候才检验出余票不足。这种设计会牺牲一些用户体验,但是可以保证高可用,让用户不至于无法访问或者是长时间等待

分布式数据库

分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章