从“单机”到“分布式”到“集群”,服务经历了什么?

作者:哈里谢顿日期:2025/12/27

【万字长文·图解】
从“单机”到“分布式”到“集群”——一次讲透两者的区别、联系、落地场景与常见架构


一、先放一张脑图

1单机(one box)────┬──> 集群(Cluster):多台机器干**同一件事**(横向复制)
2                └──> 分布式(Distributed):多台机器干**不同的事**(横向拆分)
3

关键词

  • 集群 = 人多力量大(量)
  • 分布式 = 专人干专事(分工)
  • 现实中往往“分布式 + 集群”混合出现(既拆分又复制)

二、集群(Cluster)详解

1. 定义

多台物理/虚拟节点组成一个逻辑整体,对外提供同一种服务,通过复制提高并发量可用性

2. 核心目标

  • Scale-Out(横向扩展)
  • High-Availability(故障转移)
  • Load-Sharing(负载均衡)

3. 分类速记

类型说明产品案例
高可用集群 HA主备切换,A 挂了 B 立刻顶MySQL MGR、Redis Sentinel、Keepalived
负载均衡集群 LB多台同时在线,流量分摊Nginx、LVS、HAProxy、AWS ELB
计算集群 HPC并行计算,CPU 加一起算Slurm、Kubernetes Job
存储集群多磁盘拼成统一存储Ceph、GlusterFS、HDFS

4. 经典架构图(以 Web 层为例)

1        ┌───> 节点 1(Nginx)
2LB──┤   ├───> 节点 2(Nginx)   对外 VIP 统一入口
3        └───> 节点 3(Nginx)
4
  • 所有节点跑同一套代码
  • 会话同步(粘性会话或 Redis);
  • 健康检查失败即剔除。

5. 优缺点

✅ 简单:代码零改造
✅ 线性扩容:加机器就提升 QPS
❌ 单点数据仍在单机(例如 MySQL 主库),集群 ≠ 数据分布式


三、分布式(Distributed)详解

1. 定义

原本单机内不同功能同一功能的不同数据拆到多台节点,节点之间通过网络协作,对外表现为一个系统

2. 核心目标

  • 拆分(数据/功能/计算)
  • 自治(局部故障不影响全局)
  • 最终一致性(CAP 权衡)

3. 拆分维度

维度案例产品
业务功能订单服务、用户服务、库存服务独立进程微服务
数据按用户 ID 取模拆成 32 库 1024 表分库分表、ShardingSphere
计算Map 节点 + Reduce 节点各干各的Hadoop MapReduce
时空同一任务流水线 Stage1→Stage2Flink 流处理

4. 经典架构图(微服务 + 分库分表)

1API 网关 ─┬─> 订单服务 ──> 订单库(分片 0-31)
2          ├─> 用户服务 ──> 用户库
3          └─> 库存服务 ──> 库存库(分片 0-15)
4
  • 每个服务代码不同数据不同
  • 节点失败只影响局部;
  • 需要分布式事务/消息最终一致性。

5. 优缺点

✅ 突破单机容量上限(数据、计算)
✅ 独立发布、弹性伸缩
❌ 复杂:远程调用、幂等、分布式事务、脑裂、网络分区
❌ 延迟比本地高 1~2 个数量级


四、集群 vs 分布式——一句话对比

维度集群分布式
单元关系同构节点(镜像)异构节点(分工)
透明性对客户端几乎透明需要服务发现、网关
扩展目标提升吞吐量&可用性提升容量&可维护性
故障范围节点级冗余,数据仍可能单点局部故障,数据/计算已拆分
代码改造零/少量必须(接口、数据路由、容错)
CAP 侧重侧重 AP(高可用)必须面对 CP/AP 选择

五、为什么总把两者混用?

“分布式”里每个子服务本身又可以是“集群”——既分工又复制

电商订单架构示例

1订单服务(集群 3 副本)──> 订单表(分片 0-15,每片 2 副本)
2
  • 分布式:订单表按用户 ID 拆成 16 个分片 → 数据分布式
  • 集群:每个分片有 2 副本 → 高可用集群

六、演进路线(老板最爱问的“三步走”)

  1. 单机集群(先解决并发&可用,不动代码)
  2. 集群分布式(数据量/研发规模变大,开始拆分)
  3. 分布式混合云/多活(地域容灾、弹性、成本)

七、常见产品对照表

场景集群产品分布式产品
数据存储MySQL MGR、Redis SentinelMySQL Sharding、TiDB、CockroachDB
计算Kubernetes ReplicaSetHadoop MapReduce、Spark、Flink
消息——Kafka、Pulsar(分区+副本)
协调——ZooKeeper、etcd、Consul

八、一张图总结(保存即可)

1               单机
2                
3        ┌───────┴───────┐
4                       
5     集群(复制)    分布式(拆分)
6                       
7        └───────┬───────┘
8                
9         现代互联网架构
10      (微服务 + 分片 + 副本)
11

九、一句话背下来

集群同一台服务好多台
分布式一台机器的任务拆成好多台机器的任务
真正的大型系统 = 分布式 + 集群——既分工又人多


从“单机”到“分布式”到“集群”,服务经历了什么?》 是转载文章,点击查看原文


相关推荐


谷歌的大反击:Gemini 3 Flash 让“快”和“聪明”终于握手言和
墨风如雪2025/12/18

还记得以前我们怎么挑选大模型吗?我们要么忍受旗舰模型“老牛拉破车”般的推理速度,只为求一个靠谱的答案;要么为了秒回的快感,去忍受轻量级模型偶尔的“胡言乱语”。 在这个2025年的尾巴,谷歌似乎终于要把这道选择题撕掉了。 12月17日,Gemini 3 Flash 正式上线。如果不看发布会,光看名字,你可能会以为这又是一个为了省钱而不得不做出的妥协版。但上手实测并扒开数据一看,这次的情况有点不一样。谷歌不想让你把它当备胎,而是想让它成为你每天都在用的主力。 速度不再是智商的敌人 让我们先聊聊最直


Labview 与欧姆龙 PLC 的 Ethernetip TCP 网口通讯:CIP 通讯的魅力
qq 8762239652025/12/10

Labview Ethernetip TCP网口通讯欧姆龙PLC OmronNX1P2NJ501NJ301PLC标签通讯 CIP通讯比Fins通讯更完美。 1.自定义变量读写 2.支持 Bool单点或数组读写 3支持数字格式单个或者数组读写 4支持浮点数单个或者数组读写 程序经过测试准确运行从此远离%转换成Fins. 在自动化控制领域,Labview 与欧姆龙 PLC 的通讯是很多工程师会面临的课题。今天咱就唠唠 Labview 通过 Ethernetip TCP 网口和欧姆龙 NX1P2


单片机手搓掌上游戏机(十六)—pico运行fc模拟器之程序修改烧录
Bona Sun2025/11/30

我们来山寨picosystem,毕竟79刀,有些地方还是要简化修改的。 到: https://github.com/fhoedemakers/PicoSystem_InfoNes 下载zip或者git clone都可以。 解压缩,用vscode 打开文件夹   修改的地方:  首先是那个VSYNC,也就是8引脚的一个输入信号,我能买到的st7789上都没有这个引脚,看了一下代码 就是等待它的下降沿,也就知道该刷下一屏了。  其实没多大作用,我孤陋寡闻,还没见过屏幕撕裂,


CISP-PTE 日志分析1
mooyuan天天2026/1/5

目录 一、渗透准备 1、打开靶场 2、开始答题 3、分析日志 (1)基于ip地址分析 (2)基于响应值200分析 二、暴力破解 1、firefox打开adminlogin.php页面 2、bp inception设置为on 3、输入用户名密码登录 4、bp抓包发送到intruder 5、配置intruder的positon 6、配置intruder的payload并开启攻击 7、分析攻击结果 8、正确密码登录 本文详细讲解CTF-PTE靶场日志分析关卡的渗透实


React Native for Harmony:订单列表页面状态筛选完整实现
lili-felicity2026/1/13

目录 核心知识点:订单列表状态筛选 完整核心用法 1.1 核心内置 API/Hook/组件 介绍实战开发:双版本完整实现 2.1 版本一:基础极简版 - 订单状态单选筛选OpenHarmony6.0+ TS环境专属避坑指南扩展用法:订单筛选高频进阶技巧 一、核心知识点:订单列表状态筛选 完整核心用法 1、核心内置 API/Hook/组件 介绍 本次实现的订单列表「状态筛选」功能,全程基于React Native原生核心能力开发、无任何第三方依赖、无鸿蒙原生桥接代码,所有能力完美适配鸿蒙端,且在T


【Linux 系统开发】基础开发工具详解:软件包管理器、编辑器。编译器开发实战
纵有疾風起2026/1/21

目录 引言 一. 软件包管理器 1.1 什么是软件包 1.2 Linux软件生态 1.3 如何使用yum/apt 1.4 安装源 二. 编辑器Vim 2.1 Linux编辑器-vim 2.2 vim的基本概念 2.3 vim的基本操作 2.4 vim命令模式命令集 1)进入插入模式: 2)从插入模式切换为命令模式 : 3)移动光标 : 4)删除文字: 4)复制: 5)替换: 6)撤销上一次操作: 7)更改 : 8)跳至指定的行: 总结并拓展: 2.5

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 XYZ博客