分布式系统(一)

本系列文章主要是对分布式系统的原理和一些范例做一个细致的介绍,争取对没有接触过分布式系统的人有一个帮助。

一.什么是分布式系统呢?没有具体的定义,仅仅是一个感性上的大体描述。
分布式系统是若干独立计算机的集合体,这些计算机对于用户来说就像是单个相关系统。

看过上面的答案可能没有什么具体的概念,举几个分布式系统的例子吧。

现 在非常热门的一项技术---p2p技术,每一个客户端通过对自身的信息反馈,以及对所需信息的请求,有服务器进行去调度。在请求过程中,我们可以把其他客 户端当成一个个server;在反馈信息的过程中可以把自己当成server。服务器在这个网络中起到了一个支撑作用,它自己本身的计算处理并不是很多, 仅仅是反馈给请求client一个server列表而已。不过,这就是一个分布式系统,由每台计算机来进行各自运算,由服务器进行统一调度。

再 看看另一个例子吧---万维网。有可能你会有些疑惑,万维网也是一种分布式?对,万维网也是一种分布式系统。www提供了一个分布式的文档模型。所有的资 源最初在www上都是以文档的形式体现的,随后有了mime的支持,才把www上资源信息进行了极大的扩充。每个文档有且仅有一个唯一的标识符 (URL),用户根本不用关心这个文档所在的地理位置,效果上看似在同一个位置,其实有可能是相隔十万八千里。由一台台服务器把用户请求的文档中的所有资 源,汇总起来呈现给用户。典型的分布式系统。

二.分布式系统有什么用处?
1.分布式系统能够使用户连接所需资源更加快捷;

分布式系统最重要的一个目的就是使用户能够方便的访问远程资源,并且以一种可控的方式与其他用户共享这些资源。
快捷性体现在服务器的地理分布、服务器的分布式计算、服务器的并发处理等等。采用以上方式能够使用户访问速度得到有效提升,但是其中还是会有些问题,下面将会说明。
可控性体现在需要有不同的域处理器来对用户的权限进行验证,然后通知其请求通过,以继续完成以后工作。(哈哈,这似乎不是分布式的概念)

2.分布式系统对于用户来说是透明的,这样能够方便的管理用户所需数据,处理好负载均衡;

分布式另一个目标是将它的进程和资源实际分布在多台计算机上这一事实隐藏起来。
这有什么好处呢?看下表,透明性的应用可以存在于一下的应用中。
访问 隐藏数据表示形式的不同以及资源访问方式的的不同;
位置 隐藏资源所在位置;
迁移 隐藏资源是否移动到另一位置;
重定位 隐藏资源是否在使用过程中移动到另一个位置;
复制 隐藏是否对资源进行复制;
并发 隐藏资源是否有若干相互的用户共享
故障 隐藏资源的故障和恢复
持久性 隐藏资源(软件)位于内存中还是硬盘中;
上表摘自:《分布式系统:原理与范型》
通 过上面这张表已经足够说明透明的重要性了。不过有时候还需要考虑一个透明度的问题,并不是把所有的细节都给隐藏了就是好的。比如,有一个分布式存储的 mail系统,对于用户而言,他想制定上传服务器的位置,这在大多数情况下由系统选择最近的服务器是最优的,但是有这么一种情况就不行了:用户出差。这就 需要用户选择地域了。还有就是性能上的问题,需要对透明性有个折中。

3.更加的开放:具有相同的接口规范使得集群计算机能够方便的进行数据操作,系统协同度更高;

开放性体现在哪呢?
对外:体现在统一的接口描述上,用统一的接口描述语言描述一套所有服务器都知道的规则,这样各服务器的交互问题上没什么问题了。具体的接口实现根据各个服务器的情况具体实现,从而把实现和声明进行了有效的解耦。
对内:各台服务器内部的策略和实现也需要解耦,以免整个服务器是按照实现和声明逻辑实现的,但是服务器内部确实一个整体的,对于分布式的开放性将会大打折扣。

4.可扩展性:能够随着系统需求的不断增加翻遍的对系统进行扩展;

(1)系统的可扩展性可以通过三个方面来体现:在规模上、在地域上以及在管理上。这三个方面都会使系统的运行效率略有牺牲,但是这种牺牲对于分布式系统绝对是值得的,因为维护性远比那牺牲的一点效率来得更加经济有效。

可扩展性的几个问题:
规 模上:当需要支持更多的用户或资源时候就需要更大规模的系统,但是就会涉及是集中是服务还是分散(注意不是分布)。比如一个电信的用户收费系统,这绝对是 一个需要进行安全认证的系统,但是同时还需要考虑用户的规模问题。采用分散式的系统方便在规模上进行扩展,但是对于安全性来说则是存在很大问题的,不便于 安全的管理。
地域上:人们都知道局域网比广域网要快得多,也方便管理。但是,作为一个能够方便提供大规模用户数据的系统,广域上用户等待的连接时间会变长,不过为了能够系统应用的广泛性,这牺牲是可以的。
管理上:哈哈,问题多多,设计系统的时候这一部分最好不要设计成分布式的。 不要为了分布式而分布式,真正有需求才去应用是最好的。

(2)扩展技术有以下三种:以藏通信等待时间、分布技术以及复制技术。
隐 藏等待时间:采用异步的处理用户请求,这样可以使用户的阻塞时间变短,但不会提高返回速度。提高返回速度的方法有2中,cs之间的通信量减少,只在必要情 况下才与服务器通信,能够同时减少服务器和client的压力;预处理技术,即能够提前在客户端计算的数据最好在客户端计算,这样能够极大的减少服务器的 压力。
分布技术:别的不多说,DNS的网络拓扑结构就是一种很好的分布技术;
复制技术:给数据提供几个备份,以便其中一个出现错误的时候还能够使系统正常的进行计算。

三.分布式系统的硬件是什么样子的呢?
分布式的硬件分为多处理器系统和多计算机系统;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值