相信大家网购都有经历,大概在十年前,我们买一个东西,是要等好几天才能收到货的,不像现在,在京东或者天猫上面买一个iPhone11或者华为Mate30,早上买下午到。这很大程度上,归结于前置的电商仓库到处都是。以前买一个手机,可能都是从上海发货,现在可以从各个就近的省份仓库结点进行发货。
电商公司通过大数据,将货物提前运输到各个前置仓,从而达到快速配送,提升用户体验的作用。在这方面,京东跟阿里巴巴的菜鸟裹裹是处于一个非常领先的位置。
在计算机领域,也有一个类似的技术,那便是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也提供着非常丰富的功能。除了常规的存放图片、文件,也提供着边缘计算等强大的功能。CDN的访问量是非常巨大的,有些人以为CDN就是一个简单的缓存系统,实际上CDN的也是一个非常复杂的技术,常见的CDN的技术有缓存的筛选淘汰、负载均衡、文件存储、数据安全等等等。如果你有兴趣,可以关注我,后面我们再一起学习,一起分享。大家的支持是我继续唠嗑的动力。同名公众号(沙茶敏碎碎念)
原创文章,作者:共创,如若转载,请注明出处:https://www.sudun.com/ask/96757.html