引出
之前,我在写项目的时候,因为项目中存在音视频的存储,然后我看圈子里面的人都是使用OSS对象存储来处理,然后我也跟风去使用了,然后在之后,我一个朋友问我为什么要使用OSS?我懵圈了哈哈哈,所以,我们在学习的时候,不能只是使用这个东西,去跟风,我们需要了解为什么,为什么我们要使用它,使用它对我们来说有什么好处,对提高我们自己又有什么好处!
OSS对象存储服务
什么是OSS?
OSS的全程是Object Storage Service(对象存储服务)。说白了,OSS就是将我们所要用到的静态资源(图片、视频、HTML、JS和CSS)(这些资源本来是放到我们的ESC上的)放在OSS上,然后OSS会为每个数据对象分配一个唯一的访问地址,客户端只需要通过HTTP RestAPI 去获取资源就行了。
这样貌似OSS只提供了存储服务一样。其实还不止,我们看下文。
CDN
什么是CDN?
CDN的全程是Content Delivery Network(内容分发网络)。
其基本原理采用各种缓存服务器,这些缓存服务器分布在用户访问相对集中的地区,在用户访问网站时,通过依靠部署在各地的服务器通过中心平台的负载均衡、内容分发和调度等技术将用户的访问指向工作正常、距离最近的缓存服务器上,由缓存服务器直接响应用户请求。
CDN加速OSS资源
传统的网站架构下,动态资源和静态资源不分离,都是存储在服务器上的,随着网站访问量的增加,性能会成为瓶颈,可能会出现响应慢、不流畅等。
如果使用动静分离的网站架构,就能解决海量用户访问的性能瓶颈问题。而使用CDN加速OSS是常见的站点动静分离的方式。
阿里云OSS可提供低成本的存储,CDN可以实现静态资源加速分发。
- 以OSS作为源站,CDN会将源站的静态资源(静态脚本、图片、音视频等)提前缓存到CDN全球加速节点,用户请求访问或下载资源时,可就近获取CDN节点上已缓存的资源,实现资源加速。
- 静态资源的访问将直接通过 CDN 的逻辑直接返回给客户端,而不需要占用 ECS 的各项负载,同时静态资源的上传也可以通过客户端直接上传至
OSS ,避免再经过ECS 。 - 同一数据中心的 ECS 和 OSS 之间是可以直接通过阿里云的内网进行数据交互的,因此可以保证 ECS 和 OSS 的网络质量。
总结
使用CDN加速的OSS的好处
- 支持海量存储。OSS的存储空间弹性无限扩展,您无需考虑存储架构升级。
- 用户访问网站资源,全部通过CDN,降低源站压力。
- 从距离客户端最近的CDN节点获取资源,减少网络传输距离,保证静态资源传输速度。
阿里云的OSS使用方式见参考