本文主要是介绍CDN相关事项(上篇),学海无涯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最后一公里
用户电脑接入的网络,也被分为不同的接入方式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负载均衡系统*
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
*)
3.智能DNS负载均衡系统解析域名,把对用户响应速度最快的IP节点返回给用户;
4.用户向该**IP节点(CDN服务器)**发出请求;
5.由于是第一次访问,CDN服务器会向源web站点请求数据,并缓存内容;
6.请求结果发给用户。
核心技术点CNAME映射,上面流程的总结就是,用户发起域名请求,DNS会选择最近CDNS节点给用户,直接从这个CDN节点上面获取数据。
CDN节点
每个CDN节点由两部分组成:负载均衡设备和高速缓存服务器。
负载均衡设备负责每个节点中各个Cache的负载均衡,保证节点的工作效率;同时负载均衡设备还负责收集节点与周围环境的信息,保持与全局负载DNS的通信,实现整个系统的负载均衡。
**高速缓存服务器(Cache)**负责存储客户网站的大量信息,就像一个靠近用户的网站服务器一样响应本地用户的访问请求。
CDN的管理系统是整个系统能够正常运转的保证。它不仅能对系统中的各个子系统和设备进行实时监控,对各种故障产生相应的告警,还可以实时监测到系统中总的流量和各节点的流量,并保存在系统的数据库中,使网管人员能够方便地进行进一步分析。
总结
CDN的引入大大的提升了系统的吞吐量,以及用户的体验感;还起到了数据备份的作用。不过也会产生一些问题,尤其是缓存信息,有时候经常会出现信息更新了,CDN节点的信息还是旧数据。
这个就需要我们小伙伴们要了解一些浏览器、代理服务器和源站点之间的缓存协议是什么样的,怎么去控制缓存?
老顾下一篇会继续介绍,谢谢!!!
你的赞和关注是我继续创作的动力~
器和源站点之间的缓存协议是什么样的,怎么去控制缓存?
老顾下一篇会继续介绍,谢谢!!!
你的赞和关注是我继续创作的动力~
这篇关于CDN相关事项(上篇),学海无涯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!