分布式系统(1)入门

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SDDDLLL/article/details/85005536

最近学习了分布式系统,主要是对《分布式系统:概念和设计》一书的总结,因为这本书500多页,将其整理成一些博客,比较方便查阅和认识。

一、什么是分布式系统

分布式系统是其组件分布在连网的计算机上,组件之间通过传递消息和动作协调的系统。

由一个网络连接的计算机可能在空间上的距离不等。他们可能分布在地球上不同的洲,有可能在同一栋楼或者是同一个房间里面。它具有如下的特征“

  • 并发
  • 缺乏全局时钟:程序要协作时,通过消息传递机制来协调动作,网络上的计算机与时钟同步是有限的,没有一个正确的时间全局概念。
  • 故障独立性:每一个计算机都有可能发生故障,系统的每一个组件会单独的出现故障,而其他组件还在运行。

二、分布式系统的例子

  1. web搜索:全世界N多人,在浏览器中搜索N多个网页。需要分布式系统处理(谷歌最为出色)
  2. 大型多人在线游戏
  3. 金融交易

三、分布式系统的趋势

1、泛在联网和现代互联网

由于当今各种网络的类型一直在不断地增加,比如wifi、蓝牙等等。最终的结果是联网已经成为一个泛在的资源,设备可以在任何时刻,任何地点连接到网络。对分布式系统的要求也是这

2、移动和无处不在计算

设备小型化和无线网络方面的进步使得便携式计算设备集成到了分布式系统当中,像笔记本电脑、手机、可穿戴设备等等。

而无处不在计算是指对用户的物理环境中存在的多个小型计算设备的利用。举个例子,如果用户能通过电话来控制家里的洗衣机,那么用户会觉得非常方便。

3、分布式多媒体系统

另外一个重要的趋势是在分布式系统中支持多媒体服务的需求。多媒体支持可以定义为已集成的方式支持多种媒体类型的能力。人们希望分布式多媒体系统支持离散型媒体(图片、文字)和连续性媒体(音频、视频),并通过网络传输他们。

连续性媒体的重要特点是他们包括一个时间维度,比如在视频展示的过程中,保持给定的吞吐量是必要的,它以帧/秒计,而对于实体流来说,是给定帧传递的最大延迟。

4、把分布式计算作为一个公共设施

把分布式资源看成一个商品或者是公共设施,把它和其他公共设施(水、电)进行类比,采用这个模型,资源通过合适的服务提供者来提供,能被用户租赁而不是拥有。

四、挑战

1、异构性

互联网使得用户能在大量异构信息网络上访问服务和运行应用程序,下面这些均存在异构性

  • 网络
  • 计算机硬件
  • 操作系统
  • 编程语言
  • 由不同开发者完成的软件实现

我们体会不到这些差异,连接带互联网中的协议都使用互联网协议来实现交互,这些异构性都被屏蔽了。当然使用中间件技术能够解决异构性的问题,还能为服务器和分布式应用的程序员提供了一直的计算模型

2、开放性

计算机系统的开放性是决定系统能否以不同的方式被拓展和重新实现的特征。分布式系统的开放性主要取决于新的资源共享服务能被增加和供多种客户程序使用的程度。

开放的分布式系统的特征总结如下:

  • 发布系统的关键接口是开放系统的特征
  • 开放的分布式系统是基于一致的通信机制和发布接口访问共享资源的
  • 开放的分布式系统能用不同销售商提供的异构硬件和软件构造,但如果想让系统正确的工作就要仔细检测和验证每个组件与发布的标准之间的一致性

3、安全性

信息资源的安全性包含三个部分:机密性、完整性、可用性。我们可以通过防火墙技术对进出资源进行筛选屏障,但是不能确保企业内部网的用户恰当的使用资源。为此又提出了加密技术解决这个问题。

然而,下列两个安全性问题到目前依然没有得到解决

  • 拒绝服务攻击:用大量无意义的请求攻击服务,使得重要的用户不能获取资源或者是使用。
  • 移动代码的安全性:比如说一些钓鱼网站,某一个图片其实连接的是病毒,但是展示的是图片。

4、可伸缩性

分布式系统可在不同的规模下有效地运转。如果资源和用户数量激增,系统仍能保持其有效性。那么称该系统是可伸缩的。

可伸缩分布式系统的设计面临以下挑战:

  • 控制物理资源的开销:比如用户增多时,服务器也要增多
  • 控制性能损失:比如要访问www.baidu.com这样的DNS名字,采用层次结构比线性结构的算法要好,但是数量比较大时候,仍将导致一些性能上的损失
  • 防止软件资源用尽:比如互联网地址改为了128位的
  • 避免性能瓶颈

5、故障处理

计算机有时候会出现软件或者是硬件的故障,程序可能会产生不正确的结果。因此采用以下方式处理错误:

  • 检测故障:
  • 掩盖故障
  • 容错
  • 故障恢复

6、并发性

在分布式系统中,服务和应用均提供可被客户共享的资源。因此,可能有好几个客户同时试图访问同一个资源,这可以通过标准的技术来实现(如大多数操作系统中使用的信号量机制)。

7、透明性

 OK,总结第一章就到这了,基本上都是分布式系统的一些特征和概念。

猜你喜欢

转载自blog.csdn.net/SDDDLLL/article/details/85005536