2026年2月25日Evgeny · 高级系统工程师

高负载系统架构:如何处理每秒百万请求


一台服务器——一台死亡服务器。如果你的后端只运行在单台机器上,你不是在构建产品——你是在构建一颗定时炸弹。高负载系统不是关于强大的硬件,而是关于正确的架构。

高负载的三大支柱

高负载系统架构:负载均衡器和服务器集群

图 1. 负载均衡器将流量分配到服务器池

1. 水平扩展(Scale Out)

规则:不要让一台服务器更强大——添加更多服务器。这是垂直扩展($50,000的机器)和水平扩展(10台×$500的机器)之间的本质区别。

  • 优点:无限增长上限。一个节点崩溃——其余继续工作。
  • 挑战:应用程序必须是无状态的。不能在进程内存中存储会话。

2. 负载均衡器

负载均衡器是调度器。它接受所有传入请求并将其分发到活跃节点。分发算法:轮询(Round Robin)、最少连接(Least Connections)。Nginx、HAProxy、AWS ALB——适合任何预算的选择。

3. 缓存——第一道防线

大多数服务中80%的请求是重复的。Redis或Memcached缓存响应并减少数据库负载。Cache-aside规则:先检查缓存,未命中时——去数据库并将结果存入缓存。

# 典型高负载架构
客户端 → CDN → 负载均衡器
├── 应用服务器 #1 → Redis缓存 → PostgreSQL(主)
├── 应用服务器 #2 → Redis缓存 → PostgreSQL(从)
└── 应用服务器 #3 → 消息队列(RabbitMQ/Kafka)

异步作为哲学

并非所有任务都需要同步执行。发送邮件、生成报告、图像缩放——这些都放入队列(Kafka、RabbitMQ、SQS)并由后台工作进程处理。用户无需等待——他们立即得到响应。

NineLab 建议:从简单的单体开始,但要设计成易于提取服务的方式。"过早的微服务化"比高负载杀死了更多的初创公司。

结论:高负载系统不是魔法。它是负载均衡器 + 无状态应用 + Redis + 队列 + 精心设计的数据库。每一层都减轻了下一层的压力。这正是Telegram、Avito和Ozon的工作方式。

主题常见问题

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

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

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

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

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

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

查看全部:高负载

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

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

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

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

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

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

阅读文章
高负载2026年2月8日
HighLoad 架构:从单体到微服务

何时从单体走向微服务:在不停业务的前提下拆分边界、数据与部署,评估团队规模与运维成本,避免过早分布式的典型陷阱。

阅读文章