分布式计算概念
一、分布式计算的定义
分布式计算是一门计算机科学,主要研究分布式系统。一个分布式系统包括若干通过网络互联的计算机。这些计算机互相配合以完成一个共同的目标(我们将这个共同的目标称为“项目”)。具体的过程是:将需要进行大量计算的项目数据分割成小块,由多台计算机分别计算,再上传运算结果后统一合并得出数据结论。在分布式系统上运行的计算机程序称为分布式计算程序;分布式编程就是编写上述程序的过程。
二、分布式计算的优缺点
优点
- 超大规模
- 虚拟化
- 高可靠性
- 通用性
- 高可伸缩性
- 按需服务
- 极其廉价
- 容错性
缺点
- 多点故障
一台或多台计算机的故障,或一条或多条网络链路的故障,都会导致分布式系统出现问题 - 安全性
分布式系统为非授权用户的攻击提供了更多机会
三、分布式计算的相关计算形式
- 单机计算
是最简单的计算形式,即利用澹台计算机不与任何网络互连,只能使用本计算机系统内的的所有资源。一台计算机在任何时刻只能被一个用户使用。用户在该系统上执行应用程序,不能访问其他计算机上的任何资源。 - 并行计算
是指在并行计算机上所做的计算,即采用多个处理器来执行单个指令。
网络计算:是把网络连接起来的个各种自治资源和系统组合起来,以实现资源共享、协同工作和联合计算。 - 网格计算
是指利用互联网把地理上广泛分布的各种资源(计算、存储、带宽、软件、数据、信息、知识等)连成一个逻辑整体,就像一台超级计算机一样,为用户提供一体化信息和应用服务(计算、存储、访问等)。 - 云计算
是分布式计算、并行计算、效用计算、 网络存储、虚拟化、负载均衡、热备冗余等传统计算机和网络技术发展融合的产物。
分布式系统介绍
一、 分布式系统定义
分布式系统指通过网络互连,可协作执行某个任务的独立计算机集合。不共享内存或程序执行空间的一系列计算机被认为是相互独立的。
二、分布式系统特征
- 可靠性
指一个分布式系统在它的某一个或多个硬件的软件组件造成故障时,仍能提供服务的能力。 - 可扩展性
指一个系统为了支持持续增长的任务数量可以不断扩展的能力。 - 可用性
指一个系统尽可能地限制系统因故障而暂停的能力。 - 高效性
指一个分布式系统通过分散的计算资源来实现任务执行的高效率。
三、CAP原则
CAP原则是NOSQL数据库的基石。Consistency(一致性)。 Availability(可用性)。Partition tolerance(分区容错性) 。
分布式系统中的三个特性进行了如下归纳:
- 一致性(C)
在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本) - 可用性(A)
在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性) - 分区容错性(P)
以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。。
分布式计算基础技术
一、进程间通信
分布式计算的核心技术是进程间通信(interprocess communication,IPC),即在互相独立的进程(进程是程序的运行时表示)间通信及共同协作以完成某项任务的能力。
在分布式计算中,两个或多个进程按约定的某种协议进行IPC,此处协议是指数据通信各参与进程必须遵守的一组规则。在协议中,一个进程有些时候可能是发送者,在其他时候则可能是接收者。当一个进程与另一个进程进行通信时,IPC被称为单播(unicast);当一个进程与另外一组进程进行通信时,IPC被称为组播(multicast)。
二、IPC程序接口的四种基本操作
- 发送(Send)
该操作由发送进程发起,旨在向接收进程传输数据。操作必须允许发送进程识别接收进程和定义待传数据。 - 接收(Receive)
该操作由接收进程发起,旨在接收发送进程发来的数据操作必须允许接收进程识别发送进程和定义保存数据的内存空间,该内存随后被接收者访问。 - 连接(Connect)
对面向连接的IPC,必须有允许在发起进程和指定进程间建立逻辑连击的操作:其中以进程发出请求连接操作而另一进程发出接受连接操作。 - 断开连接(Disconnect)
对面向连接的IPC,该操作允许通信的双方关闭先前建立起来的某一逻辑连接。