分布式计算概述及相关问题

什么是分布式计算

  1. 什么是分布式计算呢,顾名思义分布式计算就是多组计算机通过相互配合以完成一个共同的目标,再简单的说就是 ”六大门派“ 在 ”混元霹雳手-成昆“ 的运筹帷幄下一起围攻 ”光明顶“ 的意思差不多,”六大门派“是通过网络互联的软硬件系统,而 ”光明顶“ 则是他们的共同目标。
  2. 更为正式的定义是,分布式计算研究如何把一个需要非常巨大的计算能力才能解决问题分成许多小的部分分给许多计算机进行处理,最后把结果合并,就像是 想要灭掉 “明教” 就必须要有一个更为强大的门派才可以灭掉,但是很显然 “六大门派” 中没有一个能独自灭掉 “明教” ,所以可以吧明教的各路高手都拆开,再分配到 “六大门派” 中的每个门派,比如:“四大法王” 交给 “少林” 和 “武当” ,”左右二使“ 交给 “崆峒派” ,剩下的什么 “布袋和尚”之辈就交给 “峨眉” 了。说白了就是分而治之。

分布式计算的有点及缺点

优点

  1. 低廉的计算机价格和网络访问的可用性 计算机的计算能力是越来越强且价格也是越来越低,从而为分布式计算构建了一个理想环境;
  2. 资源共享 分布式计算可以有效的汇集资源;
  3. 可伸缩性 对资源需求的增加可通过增加额外资源来有效解决;
  4. 容错性 一个副本出现故障;

缺点

  1. 多点故障 分布式系统存在多点故障的可能性,因此一台计算机或者多台计算机出现故障可能会影响整个分布式系统 ;
  2. 安全性低 分布式系统是非集中式管理机制包括许多独立的组织,所以对于安全策略的实现和增强变得更为困难;

分布式计算的相关计算形式

  1. 单机计算 单机计算是最简单的计算形式,即利用单台计算机进行计算,此计算机不与任何网络互联;
  2. 并行计算 并行计算是指采用多个处理器来执行单个指令,即采用多种计算资源解决计算问题的过程;在这里插入图片描述
  3. 网格计算 网络计算是指利用互联网把地理上分布广泛的各种资源连城一个逻辑整体,就像一台超级计算机一样为用户提供一体化信息和应用话服务。
  4. 网络计算 指把网络连接起来的各种自治资源和系统组合起来以实现资源共享和协同工作。
  5. 云计算 云计算指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算早期,简单地说,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。因而,云计算又称为网格计算。通过这项技术,可以在很短的时间内(几秒种)完成对数以万计的数据的处理,从而达到强大的网络服务。

分布式系统概述

作为单个完整服务展现在终端用户面前的一组协同工作服务器。组中的服务器共享状态、同步操作,并且任意某个服务器独立故障时都不会影响整个系统的正常运行。

分布式系统示意图

分布式系统的特征

  1. 可靠性 可靠性指一个分布式系统在它的某一个或多个硬件的软件组件故障时,仍能提供服务的能力;
  2. 可扩展性 可扩展性是指一个系统为了支持持续增长的任务数量可以不断扩展的能力。
  3. 可用性 使用单机处理任务时,当处理器出现问题或者关闭时会造成任务暂停,直到处理器被修复或者被替换,任务才能得以继续进行。可用性是一个系统尽可能地限制这种潜在风险发生的能力,会涉及两种不同的机制:快速检测错误机制和快速启动恢复程序机制。
  4. 高效性 我们如何估算分布式系统的效率呢?假设通过分布式的方式运行一个操作,系统会得出一个结果集合。有两种方式可以测算出它的效率,第一种是反应时间(时延),表示系统得到第一个结果的延迟。第二种是吞吐量(带宽),表示在一个给定的单位时间内所能交付的结果项的数目。
  5. CAP理论 一致性( Consistency,C):所有结点访问同一份最新的数据副本。在分布式系统中的所有数据备份,在同一时刻是否同样的值。
    可用性( Availability,A):对数据更新具备高可用性。在集群中一部分结点故障后集群整体是否还能响应客户端的读写请求。
    分区容忍性( Partition tolerance,P:当集群中的某些结点无法联系时仍能正常提供服务以实际效果而言,分区相当于对通信的时限要求,系统如果不能在时限内达成数据致性,意味着发生了分区的情况,必须就当前操作在一致性和可用性之间做出选择。

分布式计算的基础技术

  1. 进程间通信 分布式计算的核心技术是进程间通信(interprocess communication,IPC),即在互相独立的进程(进程是程序的运行时表示)间通信及共同协作以完成某项任务的能力。
  2. IPC程序接口原型
      发送(Send)。该操作由发送进程发起,旨在向接收进程传输数据。操作必须允许发送进程识别接收进程和定义待传数据。
      接收(Receive)。该操作由接收进程发起,旨在接收发送进程发来的数据操作必须允许接收进程识别发送进程和定义保存数据的内存空间,该内存随后被接收者访问。
      连接(Connect)。对面向连接的IPC,必须有允许在发起进程和指定进程间建立逻辑连击的操作:其中以进程发出请求连接操作而另一进程发出接受连接操作。
      断开连接(Disconnect)。对面向连接的IPC,该操作允许通信的双方关闭先前建立起来的某一逻辑连接。
  3. 事件同步
      1.同步send和同步receive
      receive操作的发出导致该发起进程挂起,直到接收完成该操作的所有数据。同样地,send操作的发出导致发送进程挂起。当发送的数据被进程2接收后,主机2的IPC设施向主机1的IPC设施发送一条确认信息,进程1随后可被解锁。注意,消息确认由两台主机的IPC设施处理,并且对两个进程是透明的。
      2.异步send和同步receive
      receive操作的发出将导致接收进程挂起,直到接收到满足操作的所有数据为止。然而,send操作的发出不会导致发送进程挂起。在本例中,发送进程永远不会被阻塞,因此,进程2所在主机的IPC设施不必发送确认消息。
      3.同步send和异步receive情形1
      接收操作请求的数据在receive操作发出时已经到达,在这种情况下,数据被立即传送到进程2,主机2的IPC设施返回的确认消息将进程1解锁。
      4.同步send和异步receive情形2
      receive操作请求的数据仍未到达;没有数据传递到该进程。接收进程负责确定已真正接收到数据,如果需要的话,重复receive操作,直到数据到达(注意,通常由程序使用循环来重复发出receive操作,直到等待的数据全部接收。这种重复尝试技术被称为轮询技术)。进程1被无限期阻塞,直到进程2重发receive请求,并最终收到主机2 IPC设施的确认消息。
      5.同步send和异步receive情形3
      receive操作请求的数据仍未到达。当请求数据到达时,主机2的IPC设施将通告进程2,此时进程2可以继续处理数据。该情形要求进程2提供一个可以被IPC设施调用的侦听接口或事件号,用于向进程通告请求数据的到达。
      6.异步send和异步receive
      如果双方都没有阻塞,数据能传送到接收者的唯一途径就是由IPC设施保留接收到的数据。接收进程随后可以被通告数据到达了。另外,接收进程也可以轮询数据是否已经到达,并在所等待的数据到达时,对其进行处理。
  4. 死锁和超时
      虽然阻塞提供IPC必要的同步,阻塞以错误的顺序发起是可能会引起死锁。连接和接收操作可能会导致无限期的阻塞,死锁也可能造成无限期的阻塞。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值