您的位置:首页 > 大数据 > 云计算

分布式计算,云计算与大数据概论(一)--分布式计算概述(2)

2020-02-01 07:07 513 查看

分布式系统的定义

“分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件”
什么意思
简单说:分布式系统就是将一群不相干的计算机设备用网络连接起来,把他们视为一个集合,用来处理大批量的数据和复杂的工作,但本质上每台计算机都是相互独立存在的个体机;从软件的角度看,分布式系统是一个整体,但是从硬件看,他们毫无关系。就比如,一个班的同学,是一个班集体,但是每个人都不一样。
给家举例几个经典的分布式系统与项目

  1. WWW(万维网):主要用到了C/S结构,即客户机与服务器,以HTML(超文本标记语言)和HTTP(超文本传输协议)为基础,提供面向Internet服务。
  2. SETI@home(寻找外星人):一个项目,理论是用全世界的联网的计算机找外星文明的项目,当然,也包括你家的PC和笔记本~~~~
  3. BOINC(伯克利开放式网络计算平台):听名字是不是很高端?其实,他就是很高端~~~~BOINC是由美国加利福尼亚大学伯克利分校于2003年开发的一个利用互联网计算机资源进行分布式计算的软件平台,最早是为了支持SETI@home项目开发的,但是后来也应用于各个领域,逐渐成为主流的分布式平台。他采用传统的客户端/服务端架构;
  4. Distributed.net:做什么的?举个例子,他们破解了RC5-64密钥。

分布式系统的特征

  1. 可靠性:有些分布式系统利用了计算机之间本质上并没什么联系且都是通过网络连接,使得单点故障不会影响全网,或者说,某台主机坏了,可以直接换,数据服务可以继续执行,不会影响全局。
  2. 可拓展性:类似数据建构中的单链表,不够咱就加,随时加~~~~
  3. 高效性:合理分配任务,并定期检查主机工作状态是否空闲,使得每台主机都可以工作,充分利用该网络系统中的资源,此处涉及到两个变量:(1)消息的总数量(2)消息的总大小
  4. 可用性:简单来说在分布式系统中,安排一个“私人医生”,定期查看每台主机的工作情况,检查设备的可用性,尽量避免处理器出现故障。
  5. CAP理论:是一个猜想,或者说是实实在在的存在的情况。当人们想着怎么才能使得分布式系统十全十美的时候,人们做了大量的试验与论证,结果都没有可行的办法。2000年的时候美国伯克利加州大学的计算机科学家Eric Brewer在PODC上提出一个猜想,指出,对于一个分布式系统来说,都不可能同时满足一下三点:
    一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
    可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)
    分区容忍性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。
    这个猜想现在以及被证实为理论,大概意思是,一个分布式系统最多满足两项要么AP,要么CP,要么AC,但是不存在CAP。(如果有大牛看到了并且找到了可以实现CAP的方法,恭喜你,你将会获得一个银色的小碗,我们叫他“图灵奖”)

分布式计算机的基础技术

进程间通信IPC

分布式计算的核心是进程间的通信,就是在相互独立的进程间通信以及互相协作完成某项任务的能力。在分布式计算中,两个或多个进程按照某种约定的协议进行IPC。

IPC程序接口原型

可以在提供IPC所需的最低抽象层的基本API中,需要提供以下4种基本操作:
send(发送)该操作由发送进程发起,旨在向接收进程传输数据。操作必须允许发送进程识别接收进程和定义待传数据。

receive(接收)该操作由接收进程发起,旨在接收发送进程发来的数据。操作必须允许接收进程识别发送进程和定义保存数据的内存空间,该内存随后被接收者访问。

connect(连接)对于面向连接的IPC,必须有允许在发起进程和指定进程间建立逻辑连接的操作,其中一进程发出请求连接操作而另一进程发出接受连接操作。

disconnect(断开连接)对于面向连接的IPC,该操作允许通信的双方关闭先前建立的某一逻辑连接。

事件同步

IPC中有一个难点,各个进程不知道对方的进程情况,事件不同步,怎么办?最常用的方法是阻塞机制(blocking),挂起某一个进程的执行。直到该进程发起某个操作执行结束。另外,IPC操作可以是异步或非阻塞操作。
利用阻塞机制,可以实现以下几个方面:

  1. 同步send和同步receive
  2. 异步send和同步receive
  3. 同步send和异步receive
  4. 异步send和异步receive

还有一种特殊的情况 ——锁死和超时
出现的原理也很简单,阻塞式操作没有正确的生效,出现send或receive无限循环的运行或等待。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
Hao.js 发布了11 篇原创文章 · 获赞 2 · 访问量 377 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: