计算模式指的是网络中计算任务(数据处理、存储、运算等)在客户端和服务器之间如何分配与协作。随着技术发展,主要经历了以下几种模式的演变。
一、计算模式的主要类型
| 模式 | 核心特点 | 处理位置 | 典型代表 |
|---|---|---|---|
| 集中式计算模式 | 所有计算在主机完成,终端仅负责输入/输出 | 主机 | 大型机+哑终端 |
| 分布式计算模式 | 多台计算机协同完成,各自承担部分任务 | 多台计算机 | 集群计算、网格计算 |
| 客户机/服务器模式(C/S) | 客户机发起请求,服务器提供服务 | 客户机(部分处理)+ 服务器(核心处理) | Web应用、数据库系统 |
| 浏览器/服务器模式(B/S) | 浏览器发起HTTP请求,Web服务器响应并返回页面 | 浏览器(展示交互)+ Web服务器(业务逻辑)+ 数据库服务器(数据存储) | 淘宝、知乎、Gmail、企业OA系统 |
| 对等计算模式(P2P) | 节点既当客户机又当服务器,资源直接共享 | 所有对等节点 | BitTorrent、区块链 |
| 云计算模式 | 按需获取计算资源,弹性伸缩 | 云端数据中心 | AWS、阿里云、腾讯云 |
需要特别说明:分布式计算是一个广义概念,C/S、P2P、云计算都可以看作是分布式计算的具体实现形式。这里将它们并列是为了更清晰地展示不同架构的特点。
二、各种模式详细讲解
1. 集中式计算模式
结构描述:
-
一台强大的中央主机(大型机、中型机)负责所有运算和存储
-
多个哑终端(只有键盘和显示器,没有处理能力)连接到主机
工作流程:
-
用户在终端输入命令 → 发送给主机 → 主机处理 → 结果返回终端显示
-
终端本身不做任何数据处理
优点:
-
集中管理,易于维护和备份
-
安全性高(数据不离开主机)
-
硬件利用率高
缺点:
-
单点故障:主机故障则所有终端无法工作
-
扩展性差:增加性能需更换整台主机
-
成本极高(大型主机昂贵)
应用场景:银行核心系统(如IBM Z系列大型机)、航空公司订票系统(仍在使用)。
2. 分布式计算模式(广义概念)
定义:将一个大任务分解成多个子任务,由多台计算机(节点)协同完成,对外表现为一台统一的计算机。
核心特征:
-
多台计算机:物理上分散
-
消息传递:通过网络通信协调
-
统一呈现:用户感觉像在使用一台机器
优点:
-
高性价比(用多台普通计算机代替一台超级计算机)
-
高可用性(部分节点故障不影响整体)
-
可扩展性强(增加节点即可提升性能)
缺点:
-
开发复杂度高(任务分解、协调、容错)
-
网络通信开销
-
调试和运维难度大
常见形式:
-
集群计算:同构计算机紧密耦合,如Hadoop集群
-
网格计算:异构、跨地域、偏重科研计算,如SETI@home
术语 含义 举例 同构 多台计算机硬件和操作系统相同或高度一致 一个机房里50台都是戴尔服务器,都装Windows Server 异构 多台计算机硬件或操作系统不同,协同工作 同一个集群里有x86服务器(Linux)、ARM服务器(Android)、IBM Power服务器(AIX) 跨地域 计算机分布在不同地理位置(不同城市、国家) 北京、上海、纽约三地的服务器共同提供服务
- 分布式数据库:如TiDB、Google Spanner
3. 客户机/服务器模式(C/S)
结构描述:
-
服务器:提供服务的进程或计算机,被动等待请求,可服务多个客户端
-
客户机:发起请求的进程或计算机,主动请求服务,通常只服务一个用户
工作流程:
-
客户机启动,向服务器发送请求
-
服务器接收请求,处理(可能需要访问数据库)
-
服务器返回结果给客户机
-
客户机接收并展示
优点:
-
资源共享集中管理(数据在服务器上)
-
安全性好(可控制访问权限)
-
维护方便(升级服务器即可)
缺点:
-
服务器可能成为瓶颈
-
服务器单点故障风险
-
并发量高时性能下降
变体:
-
两层C/S:客户机直接访问数据库(如早期的PB、Delphi程序)
-
三层C/S:客户机→应用服务器→数据库服务器(如大部分Web应用)
-
多层C/S:增加更多中间层(如缓存层、消息队列层)
术语 结构 说明 举例 两层C/S 客户机 → 数据库服务器 客户机直接连接数据库,客户机里写了SQL语句。问题:数据库连接数有限,客户机多了会撑爆 早期的PowerBuilder、Delphi写的进销存软件 三层C/S 客户机 → 应用服务器 → 数据库服务器 客户机不直连数据库,而是访问应用服务器。应用服务器负责业务逻辑,统一连接数据库。好处:客户机再多,数据库连接数也固定 大部分Web应用(浏览器 → Web服务器 → 数据库) 多层C/S 客户机 → 应用服务器 → 中间层 → 数据库服务器 在三层基础上增加更多中间层,各层职责更细。增加的层:缓存层(如Redis)、消息队列层(如RabbitMQ)、数据访问层等 大型电商系统:浏览器 → Web → 缓存 → 消息队列 → 数据库
两层:客户机直连数据库(不安全、连接数爆炸)
三层:中间加应用服务器做"调度员"
多层:加多个"专业工种"各司其职
应用场景:Web应用、邮件系统、文件服务器、数据库系统。
4.浏览器/服务器模式(B/S)
结构描述:
-
浏览器:作为统一的客户端,只需要安装浏览器软件(如Chrome、Edge、Safari),负责发起请求、渲染展示服务器返回的页面
-
Web服务器:接收浏览器发来的HTTP/HTTPS请求,处理业务逻辑,访问数据库,生成HTML/CSS/JavaScript等页面内容返回给浏览器
-
数据库服务器:存储数据,为Web服务器提供数据读写服务
工作流程:
-
用户在浏览器地址栏输入网址或点击链接,浏览器根据HTTP协议构造请求报文
-
浏览器通过DNS解析域名得到服务器IP地址,建立TCP连接,发送HTTP请求
-
Web服务器接收请求,解析URL和参数,执行相应业务逻辑(可能需要查询数据库)
-
Web服务器将处理结果(通常是HTML页面或JSON数据)封装成HTTP响应返回给浏览器
-
浏览器解析HTML,渲染页面,执行其中的JavaScript,展示给用户
优点:
-
无需安装客户端:只要有浏览器和网络即可访问,对用户零部署成本
-
跨平台性好:一次开发,Windows、macOS、Linux、iOS、Android均可使用
-
升级维护方便:只需更新服务器端代码,所有用户立即使用最新版本
-
数据集中管理:所有数据存储在服务器端,便于备份和安全管控
-
防火墙友好:使用标准的80(HTTP)和443(HTTPS)端口,通常不会被防火墙阻拦
缺点:
-
用户体验相对较弱:相比原生应用,页面切换有延迟,复杂交互受限(近年来随着Web技术发展,差距在缩小)
-
严重依赖网络:断网或网络质量差时无法使用或体验极差
-
服务器压力大:所有计算和渲染准备都在服务器端完成,高并发时需要强大的服务器集群
-
浏览器兼容性问题:不同浏览器对同一标准可能有不同的实现,需要额外测试和适配
-
安全性风险:面临XSS(跨站脚本攻击)、CSRF(跨站请求伪造)、SQL注入等Web特有攻击
应用场景:
-
各类管理信息系统(OA、ERP、CRM)
-
电子商务平台(淘宝、京东、亚马逊)
-
社交媒体(微博、知乎、Facebook)
-
企业官网、博客、论坛
-
在线办公套件(Google Docs、腾讯文档)
-
云管理控制台(阿里云、AWS控制台)
补充说明:C/S与B/S的关系
很多人会混淆C/S和B/S(浏览器/服务器)。实际上:
-
B/S是C/S的一种特例:浏览器是通用客户端,Web服务器是服务器端
-
C/S通常指需要安装专用客户端的架构(如微信PC版、网游客户端)
-
B/S只需浏览器即可访问(如淘宝、知乎)
| 对比项 | 传统C/S | B/S |
|---|---|---|
| 客户端 | 需要安装专用软件 | 只需浏览器 |
| 升级维护 | 每台客户机需单独升级 | 只需升级服务器 |
| 跨平台 | 较差 | 好(只要有浏览器) |
| 用户体验 | 可以做得更丰富 | 受浏览器限制 |
| 典型例子 | 魔兽世界、企业ERP客户端 | 淘宝、知乎、Gmail |
5. 对等计算模式(P2P)
结构描述:
-
所有节点地位平等,既是客户机也是服务器
-
没有中心服务器(或中心服务器仅用于发现节点)
工作流程(以文件下载为例):
-
加入P2P网络,向追踪服务器获取其他节点列表
-
从多个节点同时下载文件的不同部分
-
同时将自己已下载的部分上传给其他节点
优点:
-
可扩展性极好(节点越多,资源越丰富)
-
没有单点故障(纯P2P)
-
充分利用边缘带宽
定义:靠近用户侧的接入网络带宽,而不是骨干网核心的带宽。
理解:
骨干带宽:城市之间的高速公路,很宽很通畅
边缘带宽:从你家到最近高速入口的这段小路
每个普通用户的上传带宽(通常是边缘带宽)往往闲置。P2P让用户把自己下载过的数据上传给别人,把这些"边缘小路"也用起来,缓解中心服务器的带宽压力。
缺点:
-
安全性难以保证(节点不可信)
-
管理困难(没有中心控制)
-
版权和监管问题
常见类型:
-
纯P2P:无中心服务器,如早期Gnutella
-
混合P2P :有中心索引服务器,如BitTorrent(Tracker)、Napster
含义 :P2P网络中有一种中心服务器 ,但它不存储文件内容,只存储"哪个节点有什么文件"的索引信息。
工作流程:
你想下载某文件 → 问中心索引服务器
中心服务器告诉你:用户A、B、C有这个文件
你直接去A、B、C那里下载(不经过中心服务器)
- 结构化P2P :基于DHT(分布式哈希表),如Kademlia(电驴)
种没有中心服务器的文件定位方法。把文件索引分散存储在所有P2P节点上,每个节点只存一小部分。
简单理解:
有中心索引:相当于图书馆有一个总目录卡,你去查总卡
DHT:没有总目录卡,每个书架旁边放一个小目录。你问A书架,A告诉你"去B书架找";B告诉你"去C书架找",直到找到
应用场景:文件分享(BitTorrent)、区块链(比特币、以太坊)、即时通信(早期Skype)。
6. 云计算模式
定义:通过网络按需提供可配置计算资源(网络、服务器、存储、应用服务等),用户只需少量管理即可快速获取和释放资源。
核心特征(NIST定义5大特征):
-
按需自助服务:用户自己开通资源,无需人工交互
-
广泛网络接入:通过标准网络协议访问
-
资源池化:多租户共享物理资源
-
快速弹性 :资源可快速扩容或释放
一句话 :云服务器可以几分钟内从配置低变成配置高,或者从配置高变回配置低。
打个比方:
传统方式:你想换更大的房子。要先买房、装修、搬家,花几个月。卖房子也得好几个月。
云计算:你在酒店住房。今天想住总统套房,打个电话5分钟换好。明天想省钱换标准间,再打个电话5分钟换好。
核心:不需要自己买硬件,直接在云平台上调整。
- 可计量服务:按使用量计费
服务模式:
| 模式 | 提供内容 | 用户管理范围 | 示例 |
|---|---|---|---|
| IaaS(基础设施即服务) | 计算、存储、网络 | 操作系统、中间件、应用、数据 | AWS EC2、阿里云ECS |
| PaaS(平台即服务) | 运行环境(操作系统+中间件) | 应用、数据 | Google App Engine、Heroku |
| SaaS(软件即服务) | 完整的应用软件 | 只使用软件 | Gmail、钉钉、Salesforce |
部署模式:
-
公有云:对公众开放,如AWS、Azure、阿里云
-
私有云:组织内部专用
-
混合云:公有云+私有云组合
-
社区云:特定群体共享
优点:
-
降低IT成本(按需付费,无需提前采购)
-
弹性伸缩(应对业务峰值)
系统根据流量大小自动增加或减少服务器数量,不用人守着操作。
- 高可用性(云厂商保证SLA)
术语 含义 高可用性 系统全年几乎不 downtime(停机),故障时能自动切换到备用设备,用户无感知 SLA(服务等级协议) 云厂商和你签的"承诺书",写明可用性指标,达不到就赔钱 SLA常见数字:
可用性 俗称 允许的停机时间/年 99% 两个9 3.65天 99.9% 三个9 8.76小时 99.99% 四个9 52.6分钟 99.999% 五个9 5.26分钟 举例:AWS的SLA说"99.99%可用",如果今年停了2小时,赔你代金券。
"云厂商保证SLA"的意思:你花钱买的是"对方承诺不掉线,掉线赔钱",而不是"绝对不掉线"。
缺点:
-
数据安全担忧(数据在云端)
-
网络依赖(断网则无法使用)
-
长期成本可能高于自建(高负载场景)
计算模式演变对比表
| 维度 | 集中式 | C/S | B/S | P2P | 云计算 |
|---|---|---|---|---|---|
| 控制中心 | 单一主机 | 服务器 | Web服务器 + 数据库服务器 | 无中心 | 云服务商 |
| 节点关系 | 主从 | 主从 | 主从(浏览器请求,服务器响应) | 对等 | 用户与云 |
| 客户端形式 | 哑终端 | 专用客户端软件 | 通用浏览器 | 专用P2P软件 | 浏览器/API/客户端 |
| 客户端职责 | 仅输入/输出 | 承担部分业务逻辑 | 主要负责展示与交互 | 既下载又上传 | 弱客户端(thin client) |
| 扩展方式 | 升级主机 | 升级服务器 + 增加客户机 | 扩展服务器端(客户端无需变化) | 增加节点 | 弹性伸缩 |
| 单点故障 | 有(主机) | 有(服务器) | 有(Web服务器/数据库) | 无 | 有(依赖云厂商) |
| 跨平台性 | 差 | 较差 | 好(浏览器屏蔽差异) | 一般 | 好 |
| 升级维护 | 升级主机 | 每台客户端单独升级 | 只需升级服务器 | 升级自愿 | 云厂商升级 |
| 网络依赖 | 低(本地连接) | 中(部分可离线) | 高(断网即不可用) | 高 | 高 |
| 典型成本 | 极高 | 中 | 低(开发维护成本低于C/S) | 低 | 按需付费 |
| 代表性时期 | 1960s-1980s | 1980s-至今 | 2000s-至今 | 2000s-至今 | 2010s-至今 |