CDN全称为内容分发网络(Content Delivery Network),它是有美国麻省理工学院的学生发明的,最大的作用的就是缓存用户相对集中的资源,一般这类资源都是不可变的,例如图片、视频、音频文件等。
玩游戏的朋友可能知道,有个东西就做延迟,向我们经常说延迟460,延迟是什么意思呢?就是你的手机、电脑上面的资料,发送到服务器,一个来回所需要的时间。我们都知道,网络的传输速度接近光速,从深圳到美国硅谷的距离大概为1万公里,光的速度为30万公里每秒,也就是说,如果你在美国上传一张图片,并且服务器也在美国,你在深圳访问,最少也要60毫秒以上才能拿到数据。
事实上,网络环境是非常复杂的,世界上最远的距离,莫过于我用电信,他用联通,正因为如此,真实从深圳访问美国可能要好几百毫秒。CDN的出现,就是为了解决这个问题。在美国上传的图片,我们也同样保存一份在香港,如果在深圳访问的时候,我们就直接使用香港的数据即可,这样子速度就会快非常多!CDN在全球有非常多的结点,无论你在哪里上传的图片,都可能被缓存到世界各地,以便所有的人都能够快速的访问。
这便是CDN出现的原因跟CDN解决的问题。简单来说,CDN就是一个分布式的缓存服务器,存着非常多文件,并且分布在世界各地,每个人都能就近访问。我们讲个通俗的例子,可乐公司上市了一款新的可乐,本来你要到美国去买,现在可乐公司把可乐运到了你楼下的小卖部,你只要下楼就能买到,更加方便快捷!
随着互联网的发展,现在CDN也提供着非常丰富的功能。除了常规的存放图片、文件,现在很多直播也用到。CDN相关的技术也是非常复杂跟值得学习的,常见的CDN的技术有缓存的筛选淘汰、负载均衡、文件存储、数据安全等等等。
为什么在网站中使用CDN
网络加速
提供服务器端加速,解决用户访问量大造成的服务器过载问题。
增加内容的可用性和冗余
CDN具有分布式特性,与许多源服务器相比,CDN可以处理更多流量并更好地承受硬件故障。
利于搜索引擎排名
使用CDN加速,网站打开速度变快,可以减少跳出率,也可以增加用户对网站的友好体验。
缩短网站加载时间
通过将内容分发到访问者附近的CDN服务器,提升页面加载时间。由于访问者更倾向于离开加载缓慢的网站,CDN可以降低跳出率并增加访客在该网站上停留的时间。
谁需要CDN
既然CDN的核心作用是提高网络的访问速度,那么其用户也就是访问量很大的网站,例如ICP、ISP、大型企业、电子商务网站和政府网站等。利用CDN技术,这些网站无需投资昂贵的各类服务器,设立分站点。通过采用CDN,CDN将负责信息传递工作,保证信息正常传输,而技术人员只需要维护网站内容,不需要考虑流量问题。这样,网站可保证用户得到更多的新业务,可以快速访问网络上的内容,获得更好的服务质量。
举个例子来讲,对于访问量比较大,而被访问内容更新周期比较长的网站,如政府网站,用户往往进行大量的查询工作。这类网站比较适合采用CDN。还有,大家是否注意到,在所谓的宽带社区中,瓶颈是社区的对外出口。这样,如果采用CDN无疑对社区用户使用视频点播、网络教育等宽带应用提供了保证。
CDN的不足
任何一个新事物,在给现有模式带来改进的同时,也必然存在一定的局限,CDN也是这样。实时性不太好是CDN的致命缺陷。随着对CDN需求的逐渐升温,这一缺陷将得到改进,使来自于远程服务器的网络内容网页与复本服务器或缓存器中的网页保持同步。
解决方法是在网络内容发生变化时将新的网络内容从服务器端直接传送到缓存器,或者当对网络内容的访问增加时将数据源服务器的网络内容尽可能实时地复制到缓存服务器。