分布式计算系统架构
1 引言
分布式计算是计算机科学中研究分布式系统的一个领域。分布式系统组件位于不同的联网计算机上,它们通过相互传递消息来进行通信和协调行动,组件之间相互作用以实现共同的目标。
分布式系统的三个显著特征是:组件的并发性、全局时钟的缺乏和组件故障的独立性。
分布式系统的例子很多,从基于SOA的系统到大型多人在线游戏,再到点对点的应用。
2 分布式系统
"分布式系统"、"分布式编程"、"分布式算法 "等术语中的 "分布式 "一词最初指的是计算机网络。在这个网络中,各个计算机在物理上分布在一定的地理区域内。
现在这些术语的使用范围更广,甚至有时指的是运行在同一台物理计算机上的自主进程,并通过消息传递进行交互。
虽然对分布式系统没有一个统一的定义,但常用的定义属性如下:
1. 有几个自主的计算实体(计算机或节点),每个实体都有自己的本地存储器。
2. 实体之间通过信息传递进行通信。
3. 系统要能够承受各个计算机的发生故障。
4. 系统的结构(网络拓扑结构、网络延迟、计算机数量)事先并不知道,系统可能由不同种类的计算机和网络链路组成,系统在执行分布式程序的过程中可能会发生变化。
5. 每台计算机对系统只有有限的、不完整的资源。每台计算机可能只知道输入的一部分。
此外,我们还需要关注:
l 分布式系统可有一个共同的目标,比如解决一个大型的计算问题。用户就会把自主处理器的集合视为一个单元。
l 或者,每台计算机可有自己的用户,有各自的需求,分布式系统的目的是协调共享资源的使用或为用户提供通信服务。
l 在分布式系统内运行的计算机程序称为分布式程序(分布式编程就是编写这种程序的过程)。消息传递机制有很多不同类型的实现,包括纯HTTP、类似RPC的连接器和消息队列等。
l 分布式计算也指利用分布式系统来解决计算问题。在分布式计算中,一个问题被分成许多任务,每个任务由一台或多台计算机解决,这些计算机通过消息传递相互通信。
2.1 并行和分布式计算的关联
分布式系统是指有共同工作目标的网络计算机群。术语"并行计算 "和 "分布式计算 "有许多重叠,它们之间不存在明确的区别。"并行"和 "分布式"都可以被描述为同一个系统。
典型的分布式系统中的处理器以并行方式并发运行。
并行计算可以看作是分布式计算的一种特殊的紧密耦合形式,而分布式计算则可以看作是并行计算的一种松散耦合形式,尽管如此,可以用以下标准将并发系统粗略地划分为 "并行 "或 "分布"。
1. 在并行计算中,所有的处理器都可以访问共享内存,以交换处理器之间的信息。
2. 在分布式计算中,每个处理器都有自己的私有内存(分布式内存)。信息是通过处理器之间传递消息来交换的。
(a)、(b):分布式系统。
(c):并行系统。
3 为什么要用分布式系统
使用分布式系统和分布式计算的原因可包括:
3.1 计算需求
某一应用的计算需求可能要求使用连接几台计算机的通信网络:例如,在一个产生的数据是另一个地点需要的数据。
3.2 成本效益和单点故障
在许多情况下,原则上可以使用单台计算机,但出于实际原因,使用分布式系统是更好的。例如,与单台高端计算机相比,通过使用多台低端计算机组成的集群来获得所需的性能水平可能更具有成本效益。
因为没有单点故障问题,可提供比非分布式系统更高的可靠性。
3.3 扩展性强
此外,分布式系统可能比单处理器系统更容易扩展和管理。
4 分布式架构
分布式计算采用了各种硬件和软件架构。
在较低的层次上,需要将多个CPU与某种网络互连,不管该网络是印在电路板上还是由松散耦合的设备和电缆组成。
在更高的层次上,需要将运行在这些CPU上的进程与某种通信系统互连起来。
分布式编程通常分为几种基本架构:
4.1 客户端-服务器
这是智能客户端与服务器联系获取数据,然后将数据格式化并显示给用户的架构。
4.2 三层
这种架构把系统分为表现层,逻辑层和数据层。这简化了应用程序的部署。大多数Web应用都是三层的。
4.3 n层
N层架构,通常指的是Web应用,它进一步将其请求转发给其他企业服务。3层架构是N层架构的特殊形式。
4.4 Peer-to-peer
架构中没有专门的机器提供服务或管理网络资源,而是将所有的责任统一分配给所有的机器,称为对等机。
对等体既可以作为客户机,也可以作为服务器。 这种架构的例子包括BitTorrent和比特币网络。
4.5 并发进程
分布式计算架构的另一个基本方面是并发进程之间的通信和协调工作的方法。
通过各种消息传递协议,进程之间可以直接通信,通常是主/从关系。
4.6 数据库为中心
另外,"以数据库为中心"的架构可以利用共享数据库,使分布式计算不需要任何形式的进程间直接通信,特别是以数据库为中心的架构,在一个允许实时环境中继的模式化架构中提供关系处理分析。
这就实现了网络数据库参数内和参数外的分布式计算功能。
5 分布式系统的例子
1. 电信网络。
a) 电话网和蜂窝网络;
b) 互联网等计算机网络。
c) 无线传感器网络。
d) 路由算法。
2. 网络应用。
a) 万维网和点对点网络;
b) 大型多人在线游戏和虚拟现实社区。
c) 分布式数据库和分布式数据库管理系统。
d) 网络文件系统。
e) 分布式缓存,如突发缓冲器。
f) 分布式信息处理系统,如银行系统和航空预订系统。
3. 实时过程控制。
a) 飞机控制系统。
b) 工业控制系统。
4. 并行计算。
a) 科学计算,包括集群计算、网格计算、云计算等。
b) 计算机图形学中的分布式渲染。
6 分布式系统的优缺点
6.1 分布式系统的优点
分布式系统的一些优点如下:
1. 分布式系统中的所有节点都是相互连接的。所以节点可以很容易地与其他节点共享数据。
2. 更多的节点可以很容易地添加到分布式系统中,即可以根据需要进行扩展。
3. 一个节点的故障不会导致整个分布式系统的失败。其他节点仍然可以相互通信。
4. 打印机等硬件资源可以与多个节点共享,而不是只限于一个节点。
6.2 分布式系统的缺点
分布式系统的一些缺点如下:
1. 在分布式系统中很难提供足够的安全,因为节点以及连接都需要安全。
2. 一些消息和数据在从一个节点转移到另一个节点时,可能会在网络中丢失。
3. 与单用户系统相比,连接到分布式系统的数据库是相当复杂和难以处理的。
4. 如果分布式系统的所有节点都试图同时发送数据,网络中可能会出现过载现象。
7 参考
https://blog.stackpath.com/distributed-system/
https://www.freecodecamp.org/news/a-thorough-introduction-to-distributed-systems-3b91562c9b3c/
- 点赞
- 收藏
- 关注作者
评论(0)