为什么使用CDN镜像回源后首个用户访问会比较慢

2021-09-06 12:37 栏目:技术开发 查看(3660)

众所周知,使用云存储+CDN会比直接单台服务器成本更低而且体验会更好。比如某客户单位有一个视频模块,这个视频模块平时没什么人访问,但活动的时候同一时段在线的人数可能是几百人甚至更高。他们原来的技术服务商给他们采购的是100MB独享的,那时候是需要10万+一年的费用的。刚才看了下阿里云100MB独享带宽服务器费用大概是七八万(硬件配置很一般的2核心4GB,主要是带宽费用)。

QQ截图20210906113147

然而,在此前,他们这个100MB独享的服务器几乎在99%的时间内都是浪费掉的。但是,在活动的时候,用户访问的体验会很差。试想一下,即便仅仅只有100人访问,100MB独享带宽满载运行,平均每个用户只能得到1MB带宽资源。如果让你用1MB带宽网络去看高清网络视频,那种感觉可能在拨号上网的年代可能才会有。而实际上活动的人数可能是更多,那种体验可想而知了。

在我们接手项目后,进行了改造。把视频存储到云储存,使用cdn分发。这样只有活动期间才需要按流量付费给云服务厂商,另外99%的时间是几乎不需要相应的成本。然而CDN分发,理论上是没有最高带宽限制的。这样即便是1000个人在线,每个人都能流畅的观看视频。

镜像回源是什么?

在十多年前的网站底部,很多网站都会写上“禁止镜像”,所谓镜像我们可以理解为复制,当然并不是复制整个网站,而是复制网站可公开的资源(如前端代码、图片、视频、附件等)。镜像回源则是我们的网站资源并不是直接上传到云存储,而是先跟传统网站一样传到自己的网站服务器上面,然后用户访问请求是发送给云存储。云存储会自行判断,如果空间里面有则直接提供给用户,如果没有则先从源站把相应的资源给镜像过来,然后再分发给用户。

这里顺便列举几种场景的附件资源(图片、附件、视频、前端代码)部署方式。

1、最传统的直接上传到网站服务器由网站服务器直接分发资源给用户。这种方式受制于网站服务器本身的带宽资源,如果带宽较低,只要多几用户访问就会变得很卡。甚至页面稍微大一点,哪怕只有一个用户访问,访问也会比较慢,因为有一些小网站的服务器带宽可能只有2MB。

QQ截图20210906114912

2、按传统方式直接上传到网站服务器,但使用CDN分发资源给用户。其中一种典型的方式就是镜像回源了,在网站前端显示给用户的资源请求路径并非源站(也就是网站服务器),而是CDN。这样当用户发送请求资源的请求后,云存储服务或自动判断当前存储空间是否有用户所需的资源,如果有直接提供给用户;如果没有则从源站拉取后提供给用户。这种方式比较适合小文件的操作,当然视频类大文件也可以如此操作,但需要异步处理,此外也比较浪费存储空间。

QQ截图20210906115806

因此,这种方式,第一个访问资源的用户,由于云存储还需要从源站获取资源,然后在分发给用户。这样一来首个用户访问的理论时间可以粗略的等于从网站服务器获取资源的时间+从cdn获取资源的时间。所以,使用CDN镜像回源后首个用户访问会比较慢。

3、发布者直接上传到云存储,然后通过关联的CDN分发给用户。这种方式对于这些资源而言相当于没有经过网站服务器,不受网站服务器的任何限制。比较适合视频等较大文件的处理,而且发布者在上传资源的时候也会很快,因为云存储的下行带宽是远高于网站服务器的(虽然一般网站服务器也会提供比较高的免费下行带宽)。

QQ截图20210906122933

为什么,在一些网站上我们使用了镜像回源的技术实现方式?

这些网站一般是诸如官网类的结构比较简单的网站,这种方式比较简单,而且已有的网站进行改造成本也很低。更重要的是,即便客户拿回去自己部署,也不需要考虑那么多,他也可以部署成不使用CDN方式,而这些过程不需要进行复杂配置,只需要关闭一个网站设置开关即可。

与我们的项目经理联系
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流

转载请注明出处:为什么使用CDN镜像回源后首个用户访问会比较慢 - 微构网络
分享: