解决方案架构师修炼之道
上QQ阅读APP看书,第一时间看更新

3.1.3 静态内容伸缩

上述架构的Web层最关心的是展示和收集数据并将其传递给应用层进行进一步处理。以电子商务网站为例,每个产品都会包含多张图片甚至视频来展示产品,这意味着网站将需要维护大量的静态内容,并且需要处理繁重的读请求负载,因为大多数情况下用户都在浏览产品。

在Web服务器中存储静态内容意味着要占用大量存储空间,并且随着产品的增加,你不得不开始担心Web服务器的可伸缩性。另一个问题是静态内容(例如高分辨率的图像和视频)的文件很大,可能会导致严重的用户端负载延迟。Web层需要利用内容分发网络(Content Distribution Network,CDN)来解决此问题。

CDN提供商(例如Akamai、Amazon CloudFront、微软Azure CDN和谷歌CDN)可以将静态内容从Web服务器中缓存到其部署在全球范围内的边缘位置中,使用户可以从其附近的位置获得可用的视频和图像,并减少延迟。

建议使用对象存储(例如Amazon S3或内部自建服务)来扩展源存储,它们可以在内存和计算容量之外进行独立伸缩。这些存储解决方案可以用来保存静态HTML页面,以减少Web服务器的负载,并通过减少CDN的网络延迟来增强用户体验。