程序员关于CDN相关事项你了解多少?(上篇)

享学课堂特邀做者:老顾web

转载请声明出处!redis

前言

不少文章就介绍太高并发,秒杀等流量大的解决方案,提到过缓存redis,消息中间件等,今天老顾介绍一下另外一个重要的知识点,这就是一直隐姓埋名的 CDN 了,注意不是 CSDN,而是 CDN!其全称是 Content Delivery Network,即内容分发网络数据库

网络耗时

用户访问咱们的系统,会经历网络传输,会消耗时间;咱们来看看哪些地方决定了耗时浏览器

服务器带宽

网站服务器接入互联网的网络带宽,这个带宽决定了能为请求提供的访问速度和并发访问量缓存

网络骨干

互联网的长途传输要道,出没于IDC、骨干网、城域网、接入网等,会出现“时延”和“拥塞”。服务器

运营商

互联网覆盖四大运营商,各运营商的网络独立运营,各个运营商之间的互联带宽成为瓶颈网络

最后一千米

用户电脑接入的网络,也被分为不一样的接入方式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节点的信息仍是旧数据。

这个就须要咱们小伙伴们要了解一些浏览器、代理服务器和源站点之间的缓存协议是什么样的,怎么去控制缓存?

老顾下一篇会继续介绍,谢谢!!!

你的赞和关注是我继续创做的动力~

相关文章
相关标签/搜索