源站请求量减少约 90%

← 全部项目
01 / 性能 · 2008

让静态内容不再依赖每一次源站请求

引入 Akamai,将约 90% 的对象缓存在靠近用户的位置,减轻裸金属 Web 服务器集群的压力。

~90% 对象缓存在用户附近
阅读项目经历

最初的架构

2008 年,平台使用裸金属 Web 服务器,前端只有一个负载均衡器。没有缓存层,静态内容请求也直接到达 Web 服务器集群。作为气象服务提供商,我们面临极大的请求波动。受天气和其他重大事件影响,个别日期的流量约为平时的 20 倍,类似零售商在黑色星期五面临的需求激增。因此,我们需要能够随这些峰值扩展的系统。

遇到的瓶颈

请求速率很高时,可用的套接字容量成为瓶颈,网站有时难以响应。而其中许多内容并不需要每次都由源站重复提供。

引入 CDN 后

使用 Akamai 后,我们能够将约 90% 的对象缓存在用户附近。只有约 10% 的请求仍然到达源站,相当于卸载了约 90% 的请求。这种减负甚至让我们可以缩小 Web 服务器集群。

更多调节余地

在高负载日期,可以为合适的内容延长缓存有效期,进一步减轻源站负载。关键是判断哪些内容允许更长的缓存时间,而不是对所有内容采用同一个值。

这段经历让我认识到:把可复用的内容放到离用户更近的地方,也把缓存策略当作调节负载的工具。这里仅概述历史项目,不公开基础设施标识或内部运维细节。

滑动或使用箭头键·Esc 关闭