云计算与大数据:第一章

分布式计算的概述

定义

   分布式计算是计算机科学重要的研究内容,主要研究对象是分布式系统。简单的说一个分布式系统是由若干通过网络互联的计算机组成的软硬件系统,且这些计算机互相配合以完成一个共同目标

分布式计算的相关形式

1.单机计算:是最简单的计算形式,用单台计算机即可计算,此时计算机不与任何网络互联,因而只能使用本计算机系统内可被及时访问的所有资源,此模式中,一台计算机只能被一个用户使用。多用户也可以参与单机计算,在该计算中,并发用户可通过分时技术共享单台计算机中的资源,我们称这种计算方式为集中式计算。
2.并行计算:指同时使用多种计算机资源解决问题的过程,是提高计算机系统计算速度和处理能力的一种有效的手段,它的基本思想是用多个处理器来协同求解同一问题。
3.网络计算:又是网络计算也指分布式计算,有时指与计算或其他新型计算方式,核心思想就是:把网络连接起来的各种自治资源和系统组合起来以实现资源共享。
4.网格计算:指利用互联网把地理上广泛分布的各种资源(计算、存储、带宽、软件、数据、信息、知识等)连成一个逻辑整体就像一台超级计算机一样为用户提供一体化信息和服务。网格计算偏重并行计算集中性需求,并难以自动扩展。
5.云计算:最早由Google公司提出。云计算包含两个层次的含义:一是商业层面,即以“云”的方式提供服务,二是技术层面,即各种客户端的“计算”相结合。云计算的主要形式包括:基础设施即服务(laas)、平台即服务(PaaS)和软件即服务(SaaS)

分布式系统的特征

1.可靠性
可靠性指一一个分布式系统在它的某一个或多个硬件的软件组件故障时,仍能提供服务的 能力。当一个参与计算的机器发生故障时,可以立即被其他机器替代,不会阻碍请求任务的完 成,这无疑成为分布式解决方案的有利条件之一。例如,当用户向一个大型电子网站发送一个 普通的请求时,处理该请求的其中一台计算机即使 发生故障也不会导致该请求被取消。 一个 显 而易见的结论是,可靠性依赖于数据和软件组件两者的冗余性能。在极端情况下,即使一个购 物车系统的整个数据中心被地震摧毁,也应当有另外一个备用数据中心供用户使用。显然,这 种通过消除每一个 单点故障,或多或少实现弹性恢复的服务,根据不同的应用规模是有相应的 成本的。
2.可扩展性
可扩展性是指一个系统为了支持持续增长的任务数量可以不断扩展的能力。由于数据容量不断增加或者工作量不断增加,如交易的数量,一个系统会超出预期的规模,我们可能需要在不损失系统性能的情况下完成扩展。基于上例,可通过增加服务器数量的方式实现横向扩展,但是也可以考虑通过给每台服务器增加更多系统资源的方式实现纵向扩展。 为了区别两者,假设已经将个应用程序的 工作量分配给100个服务器。 在理想的情况下,每台服务器持有1/100的数据资源,处理1/100的查询,现在假如增加了20%的数据资源,或者增加20%的查询数量,我们可以简单地增加20台服务器,这就是横向扩展,对并行处理程序几乎没有限制。我们也可以给这100台服务器增加额外的磁盘容量(为了存储增加的数据资源),增加额外的内存,或者更换更快的处理器(为了处理增加的查询数量),这是纵向扩展,通常对机器的限制比较高。
3.可用性
使用单机处理任务时,当处理器出现问题或者关闭时会造成任务暂停,直到处理器被修复或者被替换,任务才能得以继续进行。可用性是一个系统尽可能地限制这种潜在风险发生的能力,会涉及两种不同的机制:快速检测错误机制和快速启动恢复程序机制。这种建立一个能够迅速发现并解决结点故障的保护系统的过程通常称为故障转移。
快速检测错误机制的关键在于定期检测每个服务器的状态,通常将此任务分配给任务管理者结点。如果没有一个特殊的管理者结点,那么通过分布式系统实现这种机制更加困难。P2P结构的网络将其中一个结点定义为超级结点,专用于负责后台检测。
4.高效性
我们如何估算分布式系统的效率呢?假设通过分布式的方式运行一个操作,系统会得出一个结果集合。 有两种方式可以测算出它的效率,第一 一种是反应时间(时延),表示系统得到第一个结果的延迟。第:二种是吞吐量(带宽),表示在-个给定的 单位时间内所能交付的结果项的数目。这两种方式有利于证明- 一个系统在实际行为中是否合格,表现为-一个网络流量的函数。这两种方式与下列单位成本变量有关:
1 )消息的总数量:系统的所有结点所能发送的全部的消息的数量,不考虑单个消息的大小。2)消息的总大小:代表数据交换量。
分布式数据结构支持的复杂的操作(例如,在一个分布式索引中搜索一个具体的键)可以表示为其中一个单位成本的一一个函数。
一般来说, 对一个分布式结构的分析简化为统计消息的数量,这种方式太简单,忽略了很多方面的影响,包括网络拓扑结构、网络负载及其变化,以及硬件和软件在参与数据处理和路由时可能的不统一性等。 然而,开发一个精确的开销模型,准确地考虑所有这些性能因素是一个困难的任务。

分布式计算的基础技术

1.进程间通信
2.IPC程序接口原型
3.事件同步
4.同步send和同步receive
5.异步send和同步receive
6.同步send和异步receive
7.异步send和异步receive
8.死锁和超时
9.事假状态图
10.进程间通信范围的演变

你可能感兴趣的:(云计算与大数据:第一章)