系统设计 0 到 1:为何全球最大应用实现水平扩展
Source: Dev.to
“硬件墙”的现实
在第一集里,我们看到单台服务器很快会超负荷。虽然你可以直接买更大的电脑(垂直扩展),但最终会碰到物理极限——你不可能买到无限的内存或 1,000 核的 CPU。要构建像 Netflix 或 WhatsApp 这样的系统,你需要另一种策略:水平扩展。
什么是水平扩展?
水平扩展(或称 “横向扩展”)是指向资源池中添加更多机器(实例),而不是升级已有的机器。与其拥有一台巨大的“超级服务器”,不如创建一支由多个相同的小服务器(S1、S2、S3…)组成的军团并行工作。
- 容错性 – 如果只有一台服务器,它挂了,整个应用就挂了。采用水平架构时,若 Server 1 崩溃,Server 2‑10 仍然在运行,用户根本感受不到。
- 无限可扩展性 – 你不再受单块主板大小的限制。需要更多算力?只需在云端再启动 50 台实例即可。
- 成本效率 – 运行多台“普通”服务器往往比维护一台高端、专用的大型主机更省钱。
带来的新挑战
系统设计没有免费午餐。水平扩展会引入两个新挑战:
- 流量警察 – 你需要在服务器前面放置一个负载均衡器,负责分配进入的请求,防止单个实例被压垮。
- 数据一致性 – 由于有多台服务器,必须确保用户在 Server A 上更新的个人资料能够即时被 Server B 知晓。
实际案例:Netflix
Netflix 并不是运行在一台巨型计算机上。他们使用成千上万的小服务器实例。当《怪奇物语》新一季上线,数百万用户同时点击“播放”时,系统会检测到负载并自动增加更多水平实例来应对峰值。这正是分布式架构的威力。
水平扩展关乎可靠性和长期增长。它就像是制造一辆超级跑车和组建一支卡车车队的区别——前者令人惊叹,后者推动世界前行。
下一步
现在我们已经拥有了一支服务器大军,谁来指挥流量去哪里?在下一集我们将深入探讨水平扩展中最关键的组件:负载均衡器。