让静态内容不再依赖每一次源站请求
引入 Akamai,将约 90% 的对象缓存在靠近用户的位置,减轻裸金属 Web 服务器集群的压力。
~90% 对象缓存在用户附近阅读项目经历
最初的架构
2008 年,平台使用裸金属 Web 服务器,前端只有一个负载均衡器。没有缓存层,静态内容请求也直接到达 Web 服务器集群。作为气象服务提供商,我们面临极大的请求波动。受天气和其他重大事件影响,个别日期的流量约为平时的 20 倍,类似零售商在黑色星期五面临的需求激增。因此,我们需要能够随这些峰值扩展的系统。
遇到的瓶颈
请求速率很高时,可用的套接字容量成为瓶颈,网站有时难以响应。而其中许多内容并不需要每次都由源站重复提供。
引入 CDN 后
使用 Akamai 后,我们能够将约 90% 的对象缓存在用户附近。只有约 10% 的请求仍然到达源站,相当于卸载了约 90% 的请求。这种减负甚至让我们可以缩小 Web 服务器集群。
更多调节余地
在高负载日期,可以为合适的内容延长缓存有效期,进一步减轻源站负载。关键是判断哪些内容允许更长的缓存时间,而不是对所有内容采用同一个值。
这段经历让我认识到:把可复用的内容放到离用户更近的地方,也把缓存策略当作调节负载的工具。这里仅概述历史项目,不公开基础设施标识或内部运维细节。


云 / 系统