CDN,相信你对这个名词一点也不陌生,经常我们会说,把某些文件图片上传到CDN,那样子用户访问会更快,那什么是CDN呢?
CDN全称为内容分发网络(Content Delivery Network),它是有美国麻省理工学院的学生发明的,最大的作用的就是缓存用户相对集中的资源,一般这类资源都是不可变的,例如图片、视频、音频文件等。这与我们一般的服务器又有什么区别呢?网络不是四通八达的么?为什么需要CDN呢?
玩游戏的朋友可能知道,有个东西就做延迟,向我们经常说延迟460,延迟是什么意思呢?就是你的手机、电脑上面的资料,发送到服务器,一个来回所需要的时间。我们都知道,网络的传输速度接近光速,从深圳到美国硅谷的距离大概为1万公里,光的速度为30万公里每秒,也就是说,如果你在美国上传一张图片,并且服务器也在美国,你在深圳访问,最少也要60毫秒以上才能拿到数据。
事实上,网络环境是非常复杂的,世界上最远的距离,莫过于我用电信,他用联通,正因为如此,真实从深圳访问美国可能要好几百毫秒。CDN的出现,就是为了解决这个问题。在美国上传的图片,我们也同样保存一份在香港,如果在深圳访问的时候,我们就直接使用香港的数据即可,这样子速度就会快非常多!CDN在全球有非常多的结点,无论你在哪里上传的图片,都可能被缓存到世界各地,以便所有的人都能够快速的访问。
这便是CDN出现的原因跟CDN解决的问题。简单来说,CDN就是一个分布式的缓存服务器,存着非常多文件,并且分布在世界各地,每个人都能就近访问。我们讲个通俗的例子,可乐公司上市了一款新的可乐,本来你要到美国去买,现在可乐公司把可乐运到了你楼下的小卖部,你只要下楼就能买到,更加方便快捷!
随着互联网的发展,现在CDN也提供着非常丰富的功能。除了常规的存放图片、文件,现在很多直播也用到。CDN相关的技术也是非常复杂跟值得学习的,常见的CDN的技术有缓存的筛选淘汰、负载均衡、文件存储、数据安全等等等。如果你有兴趣,可以关注我,后面我们再一起学习,一起分享。