享学课堂特邀做者:老顾web
转载请声明出处!redis
不少文章就介绍太高并发,秒杀等流量大的解决方案,提到过缓存redis,消息中间件等,今天老顾介绍一下另外一个重要的知识点,这就是一直隐姓埋名的 CDN 了,注意不是 CSDN,而是 CDN!其全称是 Content Delivery Network,即内容分发网络。数据库
用户访问咱们的系统,会经历网络传输,会消耗时间;咱们来看看哪些地方决定了耗时。浏览器
网站服务器接入互联网的网络带宽,这个带宽决定了能为请求提供的访问速度和并发访问量。缓存
互联网的长途传输要道,出没于IDC、骨干网、城域网、接入网等,会出现“时延”和“拥塞”。服务器
互联网覆盖四大运营商,各运营商的网络独立运营,各个运营商之间的互联带宽成为瓶颈。网络
用户电脑接入的网络,也被分为不一样的接入方式ADSL或FTTX等,以及带宽;不一样的方式带宽,不一样费用。架构
根据研究发现:当人们得到网络信息时,好感度随时间流逝降低的最为迅速。并发
0.1 s:用户几乎感受不到系统是否不连贯性。负载均衡
1.0 s:用户明显注意到时延的发生,可是在该时间内思惟依然是连贯的。
10 s:超过该时间的时延会使用户失去等待意愿。
控制时延无疑是现代信息科技的重要指标。
在通常的系统中,用户访问一个网页,网页里面包含图片,CSS,JS等静态内容,以及一些动态的数据信息。设计的比较好点系统都会作到动静分离。
用户流量一旦大了以后,静态资源服务器的压力也是很是大的,这些资源的特色是不会常常改变。通常涉及到不会改变的资源,咱们能想到的就是用缓存技术提升系统吞吐量,抗压。
用户时延的体验感,是每一个系统都要考虑的。集合上面的需求,在整个体系架构中,就引入了CDN这个技术。
CDN的意图就是尽量的减小资源在转发、传输、链路抖动等状况下顺利保障信息的连贯性。 解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。使用户可就近取得所需内容,解决 Internet网络拥挤的情况,提升用户访问网站的响应速度和成功率。
上图的主要流程以下:
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节点由两部分组成:负载均衡设备和高速缓存服务器。
负载均衡设备负责每一个节点中各个Cache的负载均衡,保证节点的工做效率;同时负载均衡设备还负责收集节点与周围环境的信息,保持与全局负载DNS的通讯,实现整个系统的负载均衡。
高速缓存服务器(Cache)负责存储客户网站的大量信息,就像一个靠近用户的网站服务器同样响应本地用户的访问请求。
CDN的管理系统是整个系统可以正常运转的保证。它不只能对系统中的各个子系统和设备进行实时监控,对各类故障产生相应的告警,还能够实时监测到系统中总的流量和各节点的流量,并保存在系统的数据库中,使网管人员可以方便地进行进一步分析。
CDN的引入大大的提高了系统的吞吐量,以及用户的体验感;还起到了数据备份的做用。不过也会产生一些问题,尤为是缓存信息,有时候常常会出现信息更新了,CDN节点的信息仍是旧数据。
这个就须要咱们小伙伴们要了解一些浏览器、代理服务器和源站点之间的缓存协议是什么样的,怎么去控制缓存?
老顾下一篇会继续介绍,谢谢!!!
你的赞和关注是我继续创做的动力~