什么是分布式系统

来源:互联网 发布:linux命令怎么退出vi 编辑:程序博客网 时间:2024/06/05 02:20
什么是分布式系统
分布式系统有多个含义:
1)表示计算机科学的一个研究领域,研究方向。这个层面的分布式系统比较学术,不是本文讨论的对象。
2)工程领域的实际使用的分布式系统。分布式系统是互联网应用的基石,是底层的支撑平台。本文讲的分布式系统指这个层面。

互联网应用的特点是:高并发,海量数据。互联网应用的用户数是没有上限的(取决于其开放特性),这也是和传统应用的本质区别。高并发指系统单位时间内收到的请求数量(取决于使用的用户数),没有上限。海量数据包括:海量数据的存储和海量数据的处理。这两个工程难题都可以使用分布式系统来解决。

简单理解,分布式系统就是把一些计算机通过网络连接起来,然后协同工作。协同工作需要解决两个问题:
1)任务分解
把一个问题拆解成若干个独立任务,每个任务在一台节点上运行,实现多任务的并发执行。

2)节点通信
节点之间互相通信,需要设计特定的通信协议来实现。协议可以采用RPC或Message Queue等方式。

架构
集群系统主要有两种风格的架构:
client server(C/S)架构

任务分解

任务分成两部分,client和server。client和server执行不同的任务,client需要调用server来实现自己的任务。


节点通信

在基于B/S架构的设计中,广泛采用HTTP作为通信协议。


三层架构(多层架构,3-tier architecturen-tier architecture)

这个架构是C/S架构的衍生,某些server可以再运行client任务,调用其他server,形成一个层次级联。多层架构的通信协议可以有多种。
数据库系统都会提供专用客户程序,来访问数据库。这个客户程序内部实现了数据库访问协议。

peer-to-peer架构

peer-to-peer的分布式系统中,各个节点都是对等的,运行同种类型的任务。各个节点协同工作,整个分布式系统对外看来,就像一台机器,只不过性能更强。这种p2p架构的分布式系统其实就是集群


分布式系统和集群的关系

分布式系统和集群从表面上看是很类似的,都是将几台机器通过网络连接,解决某个问题或提供某个服务。
从广义上说,集群是分布式系统的一种类型,即基于P2P架构的分布式系统。


从狭义上说还是可以做一些区分:

集群:所有节点一起工作,实现同一服务。一个节点挂掉,不会对集群有任何影响。

分布式系统:系统每一个节点,都实现不同的服务,如果一个节点挂了,这个服务就不可访问了。在实际部署中,分布式系统中的每个节点都可以是一个集群,这样可以提高服务的可用性,性能等。

0 0
原创粉丝点击