CDN在互联网架构中起到的作用,以及如何演化而来?
前言
很多文章就介绍过高并发,秒杀等流量大的解决方案,提到过缓存redis,消息中间件等,今天介绍一下另一个重要的知识点,这就是一直隐姓埋名的 CDN了,注意不是 CSDN,而是 CDN!其全称是 Content Delivery Network,即内容分发网络。
一、网络耗时
用户访问我们的系统,会经历网络传输,会消耗时间;我们来看看哪些地方决定了耗时。
1.服务器带宽
网站服务器接入互联网的网络带宽,这个带宽决定了能为请求提供的访问速度和并发访问量
2.网络骨干
互联网的长途传输要道,出没于IDC、骨干网、城域网、接入网等,会出现“时延”和“拥塞”。
3.运营商
互联网覆盖四大运营商,各运营商的网络独立运营,各个运营商之间的互联带宽成为瓶颈
4.最后一公里
用户电脑接入的网络,也被分为不同的接入方式ADSL或FTTX等,以及带宽;不同的方式带宽,不同费用。
二、控制时延
根据研究发现:当人们获得网络信息时,好感度随时间流逝下降的最为迅速。
0.1 s: 用户几乎感觉不到系统是否不连贯性。
1.0 s: 用户明显注意到时延的发生,但是在该时间内思维依然是连贯的。
10 s: 超过该时间的时延会使用户失去等待意愿。
控制时延无疑是现代信息科技的重要指标。
三、CDN引入
在一般的系统中,用户访问一个网页,网页里面包含图片,CSS,JS等静态内容,以及一些动态的数据信息。设计的比较好点系统都会做到动静分离。
用户流量一旦大了之后,静态资源服务器的压力也是非常大的,这些资源的特点是不会经常改变。一般涉及到不会改变的资源,我们能想到的就是用缓存技术提高系统吞吐量,抗压。
用户时延的体验感,是每个系统都要考虑的。集合上面的需求,在整个体系架构中,就引入了CDN这个技术。
CDN的意图就是尽可能的减少资源在转发、传输、链路抖动等情况下顺利保障信息的连贯性。
解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度和成功率。
四、CDN流程
上图的主要流程如下:
1.用户向浏览器输入www.web.com这个域名,浏览器第一次发现本地没有dns缓存,则向网站的DNS服务器请求;
2.网站的DNS域名解析器设置了CNAME,指向了www.web.cdn.com(即请求指向了CDN网络中的智能DNS负载均衡系统)
3.智能DNS负载均衡系统解析域名,把对用户响应速度最快的IP节点返回给用户;
4.用户向该IP节点(CDN服务器)发出请求;
5.由于是第一次访问,CDN服务器会向源web站点请求数据,并缓存内容;
6.请求结果发给用户。
核心技术点CNAME映射,上面流程的总结就是,用户发起域名请求,DNS会选择最近CDNS节点给用户,直接从这个CDN节点上面获取数据。
五、CDN节点
每个CDN节点由两部分组成:负载均衡设备和高速缓存服务器
负载均衡设备负责每个节点中各个Cache的负载均衡,保证节点的工作效率;同时负载均衡设备还负责收集节点与周围环境的信息,保持与全局负载DNS的通信,实现整个系统的负载均衡。
高速缓存服务器(Cache)负责存储客户网站的大量信息,就像一个靠近用户的网站服务器一样响应本地用户的访问请求。
CDN的管理系统是整个系统能够正常运转的保证。它不仅能对系统中的各个子系统和设备进行实时监控,对各种故障产生相应的告警,还可以实时监测到系统中总的流量和各节点的流量,并保存在系统的数据库中,使网管人员能够方便地进行进一步分析。
总结
CDN的引入大大的提升了系统的吞吐量,以及用户的体验感;还起到了数据备份的作用。不过也会产生一些问题,尤其是缓存信息,有时候经常会出现信息更新了,CDN节点的信息还是旧数据。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
评论