计算机领域,也有一个类似的技术,那便是CDN。CDN,相信你对这个名词一点也不陌生,我们经常会说,把某些文件图片上传到CDN,从而让用户访问更加迅速,让自己服务器的压力减小。
CDN全称为内容分发网络(Content Delivery Network),最大的作用的就是缓存用户相对集中的资源,我们都用来缓存静态资源,也就是一段时间内不会改变的,例如图片、音乐、或者是视频。当然,CDN也可以用来做一些边缘计算,处理一些动态资源。网络不是四通八达的么?为什么需要CDN呢?
主要有两方面的原因,第一个是带宽,第二个是延迟。
带宽
有人会说,我们家是500兆的光纤,还怕带宽不够么?事实上,这个500兆,是你家跟运营商的带宽,而不是你跟服务器的。举个例子,假如中国跟美国之间有一条万兆光纤,苹果公司发布了新款的iPhone手机,并在他们的服务器上传了新iPhone手机的照片,因为没有CDN,所以所有的人都要通过这条光纤去获取这张最近的图片,假如有10万个人同时去拉取这张图片,那么每个人能够分享到的就这有0.1兆了。
在计算机网络中就像木桶最短的木板,带宽最小的那一块决定了你去服务器拉取数据的最大速度。
延迟
你买一瓶可乐,如果是从美国发货,即便是坐超音速飞机,也要几个小时才能送过来。网络也是如此,网络传输是有速度的,从北京到硅谷,无论你是光纤、铜线、4G还是5G都最少也许要60毫秒才能一个来回。这就意味着,你在北京的服务器上传一张国庆举国欢庆的图片,你在美国的朋友,最少也要60毫秒后才能看到。这是建立在理想情况下,真实的情况是网络环境非常复杂,各种运营商,各种交换机,再加上TCP的慢启动,中间各种网络的丢包重试,可能需要好几秒才能够看到。
所以就像卖可乐一样,我们把可乐从美国运到中国,运输到中国各个省份,各个城市,甚至是你楼下的小卖部。那么你就可以非常方便的买到一瓶可乐。CDN也是如此,CDN的公司在全球各个地方都有机房,就好比你你楼下的全家,711。就可以非常迅速地获取到对应的资源了。
如果你在经营一家网站,那么CDN还有一些作用:
1.为了实现跨运营商、跨地域的全网覆盖
互联不互通、区域ISP地域局限、出口带宽受限制等种种因素都造成了网站的区域性无法访问。CDN加速可以覆盖全球的线路,通过和运营商合作,部署IDC资源,在全国骨干节点商,合理部署CDN边缘分发存储节点,充分利用带宽资源,平衡源站流量。阿里云在国内有500+节点,海外300+节点,覆盖主流国家和地区不是问题,可以确保CDN服务的稳定和快速。
2.为了保障你的网站安全
CDN的负载均衡和分布式存储技术,可以加强网站的可靠性,相当无无形中给你的网站添加了一把保护伞,应对绝大部分的互联网攻击事件。防攻击系统也能避免网站遭到恶意攻击。
3.为了异地备援
当某个服务器发生意外故障时,系统将会调用其他临近的健康服务器节点进行服务,进而提供接近100%的可靠性,这就让你的网站可以做到永不宕机。
4.为了节约成本
投入使用CDN加速可以实现网站的全国铺设,你根据不用考虑购买服务器与后续的托管运维,服务器之间镜像同步,也不用为了管理维护技术人员而烦恼,节省了人力、精力和财力。
总结
随着互联网的发展,现在CDN也提供着非常丰富的功能。除了常规的存放图片、文件,也提供着边缘计算等强大的功能。CDN的访问量是非常巨大的,有些人以为CDN就是一个简单的缓存系统,实际上CDN的也是一个非常复杂的技术,常见的CDN的技术有缓存的筛选淘汰、负载均衡、文件存储、数据安全等等。