分布式系统的定义
“分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件”
简单说:分布式系统就是将一群不相干的计算机设备用网络连接起来,把他们视为一个集合,用来处理大批量的数据和复杂的工作,但本质上每台计算机都是相互独立存在的个体机;从软件的角度看,分布式系统是一个整体,但是从硬件看,他们毫无关系。就比如,一个班的同学,是一个班集体,但是每个人都不一样。
给家举例几个经典的分布式系统与项目
1. WWW(万维网):主要用到了C/S结构,即客户机与服务器,以HTML(超文本标记语言)和HTTP(超文本传输协议)为基础,提供面向Internet服务。
2. SETI@home(寻找外星人):一个项目,理论是用全世界的联网的计算机找外星文明的项目,当然,也包括你家的PC和笔记本~
3. BOINC(伯克利开放式网络计算平台):听名字是不是很高端?其实,他就是很高端~~~~BOINC是由美国加利福尼亚大学伯克利分校于2003年开发的一个利用互联网计算机资源进行分布式计算的软件平台,最早是为了支持SETI@home项目开发的,但是后来也应用于各个领域,逐渐成为主流的分布式平台。他采用传统的客户端/服务端架构。
4. Distributed.net:做什么的?他们破解了RC5-64密钥。
分布式系统的特征
1. 可靠性:有些分布式系统利用了计算机之间本质上并没什么联系且都是通过网络连接,使得单点故障不会影响全网,或者说,某台主机坏了,可以直接换,数据服务可以继续执行,不会影响全局。
2. 可拓展性:类似数据建构中的单链表,不够咱就加,随时加。
3. 高效性:合理分配任务,并定期检查主机工作状态是否空闲,使得每台主机都可以工作,充分利用该网络系统中的资源,此处涉及到两个变量:(1)消息的总数量(2)消息的总大小
4. 可用性:简单来说在分布式系统中,安排一个“私人医生”,定期查看每台主机的工作情况,检查设备的可用性,尽量避免处理器出现故障。
5. CAP理论:是一个猜想,或者说是实实在在的存在的情况