2025年12月2日Evgeny · 高级系统工程师

微服务 vs 单体架构:如何选择?


每个 CTO 最终都会听到:"我们需要像 Netflix 一样的微服务!"。但 Netflix 有 10,000 名工程师和数十亿美元。而你有 5 名开发人员和一个 MVP。让我们弄清楚什么时候单体架构是明智的,什么时候微服务是必要的。

视觉比较

🏛️ 单体架构

Auth Module
Payment Module
User Module
📦 Shared Database

所有模块在一个进程中

🧩 微服务

Auth Service
DB
Payment
DB
User Service
DB
Orders
DB

每个服务都是独立的

什么时候单体架构是正确的选择

  • 早期创业公司: 你需要开发速度,而不是规模。单体架构允许你快速更改代码,而无需编排 20 个服务。
  • 团队 < 10 人: 你根本没有资源来维护微服务基础设施(Kubernetes、Service Mesh、分布式追踪)。
  • 低负载: 如果你有 1000 RPS,单体架构可以在一台服务器上处理。为什么要复杂化?

什么时候该转向微服务

  1. 不同的团队,不同的节奏: 支付团队希望每天部署 5 次,而报告团队——每周一次。单体架构迫使每个人都等待彼此。
  2. 模块上的不同负载: 移动应用 API 获得 100k RPS,而管理面板——10 RPS。在单体架构中,你一起扩展所有内容(昂贵)。在微服务中——只扩展需要的部分。
  3. 技术自由: 想用 Python 编写 ML 模块,用 Go 编写主后端?在单体架构中,这很痛苦。在微服务中——这很正常。

黄金中间地带:模块化单体架构

从单体架构开始,但将其编写为未来的微服务。将代码划分为具有明确边界的模块(领域驱动设计)。当时机成熟时,你只需将模块提取到单独的进程中。

NineLab 建议: 微服务不是架构。它们是组织结构。如果你没有多个团队,你就不需要微服务。

主题常见问题

流量形态与数据往往与生产不一致。需要场景、与线上一致的指标,以及可回滚的逐步加压。

常见瓶颈在数据库与执行计划、连接池、同步外部调用与队列——可作为快速排查清单。

不一定:失效、冷启动与热点键可能适得其反。缓存要按读模型与 SLO 设计。

垂直扩展与查询优化触顶,且数据增长在分片键上可预期时。

想把这些落地到你的系统里?

介绍一下你的现状 —— 我们会给出工作计划,以及值得写进 SLA/SLO 的可衡量指标。

查看全部:高负载

高负载2026年4月25日
Excel 不再够用:5 个信号说明你的业务需要定制化应用

识别“已长出表格”的典型征兆:对账与统计错误、审批全靠群聊、请求丢失、缺乏端到端可视化。 本文说明何时该启动业务流程自动化,开发符合真实流程的内部 Web 应用(员工门户、客户后台、 工单/申请系统与管理后台)。

阅读文章
高负载2026年4月15日
如何自己对网站进行压力测试并了解其何时会崩溃

自助压力与负载测试:k6、Apache Benchmark 入门、常见误区,以及大促前如何量化容量、避免 502/503 与营销预算打水漂。

阅读文章
高负载2026年2月26日
SaaS平台开发:为什么编写代码只是成功的一半

SaaS 全生命周期:从多租户架构、计费与配额到面向数千用户的容量规划与可观测性——为何多数失败源于基础设施而非功能代码。

阅读文章
高负载2026年2月25日
高负载系统架构:如何处理每秒百万请求

高并发系统架构原则:水平扩展、负载均衡、缓存与队列如何协同,避免单点瓶颈,并在成本与可用性之间取得平衡。

阅读文章