分布式系统阅读笔记(一)-----分布式系统的特征

1)引言

从今天开始,我将会开始学习分布式系统的一些理论知识,全方面的重新学习分布式的各个技术点,所以选用了原版本的英文教材<<Dstributed Sysytems Concepts And Design>>作为学习的资源。在期间,我会没读完一章,及时的做一些阅读的笔记,1个是怕自己忘了,还有一个是把知识分享给大家,这也是我首次阅读全英文的书籍,还是挺吃力的,希望能坚持把长达1000页的书籍学习完把。

2)分布式系统的介绍

分布式系统是通过网络连接各个计算机,通过消息通信的方式实现沟通。有下面3个主要特征

1.并发性,当你在使用你的计算机做你的事情时,别人也在用他的电脑做他的事。

2.没有全局的时钟的概念,很显然,不同地区的时区的时间是不一样。

3.失败的独立性,当你的电脑崩溃的时候,他只会影响到你自己,其他节点上的电脑还是会继续运行的。

3)分布式系统的例子

1.Web搜索,比如米在Google上搜索学校,Google就会在数千个节点中所存放的图片,文字中去寻找相应的资料,最终呈现在你的面前,在这里面需要数千个计算机节点的支持,这些节点分布式于事件各地,里面存放了大致PB,TB级别的资源。

2.在线游戏。在线游戏主要考虑的一个问题是游戏的并发处理能力,但你的只有1000名的时候,系统也许运作非常正常,但是当你的系统的用户规模扩大到100W的时候,你的系统还能承受的了嘛,也许这个时候你的系统结构得进行调整了,还是C-S结构, Or Point-To-Point点对对的方式?

3.金融贸易系统。金融贸易系统也是一个非常典型的分布式系统运作的例子。里面展现各个资源的信息,以及价格的波动于变化,所有他对于1个因素是非常看重的,那就是real-time(实时性),所有像这类系统,在设计之初就做全方面的考虑。

4)分布式系统的趋势

1.将会成为普遍的网络技术。分布式系统将会在现代的网络中越来越普遍,庞大的因特网本身就可以看做是一个分布式的系统

2.分布式系统对于移动计算的支持。你可以用你的手提电脑,又或者是你的手机,通过网络可以随时控制家中的洗衣机洗衣服,也可以在办公室实时查阅室内的温度,前提是只要你接入了网。

3.分布式多媒体系统。随着分布式系统的发展,也越来越支持多媒体的服务,可以在分布式系统中存放多种类型的多媒体信息,图片,文字,视频,音频等,并通过网络的方式在展示给用户。

4.分布式的计算将会成为一个公共的服务。其实这就是我们老是提到的Cloud Computing(云计算),可以把分布式系统中的资源当成一种服务卖给第三方,可以物理上的服务,比如IAAS基础设施的服务,可以上层的SaaS软件服务,无须使用者去关心内部的细节。

5)资源共享

在分布式系统中,一个很重要的概念就是Resource Sharing,资源共享,正是因为资源的共享性,才方便了人们的操作,比如上面的一个文件,你可以去阅读,人家也可以阅读。

6)分布式所面临的挑战和困难

1.异构的环境。至少下面的这些东西可能会不一样,网络,硬件资源,操作系统,程序语言,还有不同的开发者,目前针对于此的办法是中间件的解决办法,比如比较早的CORBA架构,还有1写中间件java RMI,但是只是支持java一种语言的,还有一种办法是mobile code的方法,这是什么意思呢,字面意思是可移动性的代码,就是你的代码在你自己的机子上面编写,但是最终我会让他运行在其他的机子上,一个很好的例子就是java语言,他通过运行jvm上就解决了操作系统不一样的问题。

2.开放性的问题。分布式系统的开发性一直不是特别好,一个关键的因素是接口的公开性,只有接口的公开才能让更多的开发者去扩展这个分布式系统。接口的公开意味要进行统一的规范的声明,因为 要考虑到他的异构的环境。

3.安全问题。安全问题在分布式系统中来说,主要针对的是资源来说的,当然常见的操作就是加密操作了,或者你干脆不开放你的系统,只给内部人员使用,但是有2个问题还是很难解决的:

(1).Dos拒绝服务攻击,如果你办公室的人因为某种原因占着资源不放,你要怎么办。

(2).移动程序的安全攻击,英文原称是Security Of mobile code,一个常见的例子是你早上收到了一封电子邮件,当你毫无戒备心打开它的时候,其实这时候你运行了一个恶意的程序,你的电脑就被attack了。

4.扩展性。在分布式系统中,扩展性一直是一个非常头大的东西,但你的用户群数量成倍增长的时候,你要考虑用各种手段去改善你的系统了,不过你要要率下面几个因素:

(1).控制物理资源的开销,意味的增加机子不是一个永恒的解决办法,至少开销这块你花不起。

(2).控制数据的流失,当你的系统进行扩增的情况下,不能让原先的数据发生loss的操作

(3).防止软件的资源被耗尽,比如说IP地址的数量,32位的ip地址越来越不能满足我们生活的需要了。

(4).避免系统出现性能瓶颈。

5.出错处理。一个好的分布式系统应当有个好的容错机制。下面是几个措施

(1).检测出错,以便系统的下一步处理,常用方法,checksum校验和机制

(2).掩盖错误,当错误来到的时候,重新尝试一次,或者当文件中数据写向磁盘中多个副本,当一个出错的时候,没关系还能保证其他的副本中的数据时正确的。

6.并发性。在高并发的情况下,保证数据的有序性,不会错误,用的比较多的方案是信息号机制。

7.操作透明性。分布式系统使用起来要像使用自己本地主要一样。

8.Qos服务质量。一个好的服务质量是对于分布式服务的一个基本要求。考察服务质量的2个因素是实用性和安全性。

参考文献:<<Distributed Sysytems Concepts And Design>>原版第五版,author:George Coulouris,Jean Dollimore, Tim Kindberg,Gordon Blair

时间: 2024-11-08 23:35:29

分布式系统阅读笔记(一)-----分布式系统的特征的相关文章

面对软件错误构建可靠的分布式系统(阅读笔记)

阅读笔记 joe Armstrong 段先德 译 核心问题:如何在存在软件错误的情况下编写具有合理行为的软件 ,如何避免像死锁.死循环等问题 ERLANG的世界观,一切皆进程.将任务分离成层次化的一系列任务,强隔离的进程负责来执行每个具体化的任务,进程之间不共享状态(实际上ETS跨越了这个准则). 只能通过消息传递来通信,必须注意进程消息的堵塞问题 工作者和监督者构成一个完整的系统,监督者的作用就是监控整个系统的运行状况.并对突发情况进行可靠的处理. behaviour库的设计思想就是将程序的并

分布式系统阅读笔记(三)-----计算机网络和网络互连技术

1)介绍 当前网络在分布式系统中的主要问题有2个,1个是延时问题,还有一个数据传输速率的问题,后者可能受各方面的因素影响,比如网络总带宽的限制等.下面列表几个在分布式网络系统中的几个主要可能的讨论点: 1.扩展性. 2.可靠性. 3.安全性. 4.网络移动性. 5.网络服务质量. 6.多播传送. 2)网络类型 网络的类型有下面几种 1.PAN,私人区域网络,是本地网络的一个子集. 2.LAN,局域网. 3.MAN,城域网. 4.WAN,广域网. 5.WLAN,无线局域网络. 6.WMAN,无线城

分布式系统阅读笔记(二十)-----分布式多媒体系统

介绍 现在的分布式系统大有越来越往分布式多媒体系统的应用上走的趋势了.多媒体的应用本质上是对于持续数据流的一种消耗.包括音频以及视频,音频是由一个个audio Sample组成,而视频则是video frame组成.有时因为网络条件的原因,他是可以允许部分的延时的,延时造成的丢包率在一定比率上也是可以接受的.在多媒体应用中,很在意的quality of service服务质量的要求,因此他这里需要Qos Manager的角色. 1.分布式多媒体的应用往往是要求是实时的,这就要求系统对于QoS的控

分布式系统阅读笔记(九)-----Web Service服务

一.介绍 Web Service用一句话概括就是它提供了一个服务接口使客户端能够与服务端进行交互用非常多种的方式,超过普通的浏览器的模式.在Web Service中通常是以XML的格式方式进行传输和通信的.这其中还涉及了XML的Security安全方面的操作. 1.Web Service服务是Web服务器的一个扩展形式. 2.Web Service采用的XML的数据格式保证了可读性. 3.一个标准的Web Service通过一个URI统一资源标志符的方式被客户端访问的,URI的值可以有2种方式,

分布式系统阅读笔记(十六)-----事务和并发控制

介绍 在分布式系统中,事务的运用和共享资源的并发控制是非常常见的.简单的说,事务就是一些原子的操作的集合.原子操作的意思就是要么操作成功要么操作失败,没有其他的选择.并发控制是出现在高并发场景的时候,本篇主要描述3种常见的手段,1.锁的措施.2.乐观并发控制手段.3.时间戳序列方式.在此之前,先回顾一下平时在写程序的时候,常见的用于同步的手段,比如说: 1.用synchronize关键字,这个字java里用的,保证只有一个线程能执行里面的方法. 2.wait()和notify()方法用以协调同步

分布式系统阅读笔记(八)-----分布式对象和组件

一.介绍 在分布式系统中,一个完整的中间件需要展现一定的对于上层程序语言的以及底层的物理设施的抽象性.而分布式对象和分布式组件恰恰是2种重要的实现方式. 1.分布式对象包集成了面向对象的语言的特征和优点.能够使用户用类似面向对象的语言调用的层次上去实现远程的方法调用. 2.分布式对象有下面的一些优点:1.包装性.2.他将一个对象的实现和对象本身分离了.3.具有动态性和扩展性. 3.分布式组件是为了克服分布式对象的一些缺点而发展而来的,他解决了在分布式系统中出现的下面的一些问题:1.不完全的独立性

分布式系统阅读笔记(六)-----间接通信

介绍) 这次的内容其实与上篇学习的内容正好是相对的,之前的各种通讯方式其实说的都是直接通讯,而这次我学习的内容是间接通讯,二者的本质区别在于间接通讯把时间和空间进行了分离,直接通讯在这2点上都进行了耦合,有点事操作直接简单,但是缺点也是非常明显的,扩展性差,不能很好的面对变化.根据空间和时间2个维点,可以有4种不同的类型的通信方式,时间的分离是这样的形式:消息的本质在传送的过程中有一定的生存时间,并不要求一定要实时的去接受.空间的分离是这样的形式:消息的发送不需要去知道接受者是谁,就是说无须知道

分布式系统阅读笔记(七)-----操作系统的支持

介绍) 前面主要介绍了一些直接通信和间接通信,包括一些中间件的一些技术,这次我学习的内容是层级再往下,用一句话形式就是:在分布式系统中的操作系统级别对于中间件的支持.在这篇中,主要关注与操作系统级别对于通信的一些支持,包括RPC这样的远程调用等. 操作系统的层次) 操作系统是一个凌驾于纯硬件资源上面的一个软件系统,封装了对于硬件的抽象,在上面有内存管理,I/O管理,CPU的管理等等. 1.中间件运行在各种各样的操作系统之上,在分布式系统中的各个节点中.不同节点支持着共有的中间件层. 2.所有的硬

分布式系统阅读笔记(二十二)-----时钟和时钟同步

时钟的基本概念 时钟 时钟在一般意义上指的是一个计算机的物理时间,每个计算机都会包括他们自己的物理时钟,不同的计算机的物理可能会不同. 时钟漂移 经过在同个地方的计算机,他们的物理也有可能会不一样,如果他们从刚刚开始相同的时间计时开始,过了1过月,1年也可能会有快又慢,这在专业名词上讲叫做时间漂移.本质的原因是每秒的时间偏移,经过日记月累之后,就会有可能达到1秒钟的差距,解决的办法很简单,就是过一段时间之后,将时间纠正回来就可以了. UTC UTC全称是Coordinated Universal