趣文网 > 作文大全

当面试官问你CDN的实现原理该怎么答 看这一篇文章彻底搞懂

2020-12-15 03:05:01
相关推荐

在之前总结的阿里面试题精选中,CDN实现原理永远是一个被高频问到的问题,下面我们来看一下怎么把这个问题答到满文。

目录

1.CDN的实现原理

2.CDN网络具体实现过程

3.商用CDN系统

CDN的实现原理

在描述CDN的实现原理,让我们先看传统的未加缓存服务的访问过程,以便了解CDN缓存访问方式与未加缓存访问方式的差别:

用户提交域名→浏览器对域名进行解释→得到目的主机的IP地址→根据IP地址访问发出请求→得到请求数据并回复

由上可见,用户访问未使用CDN缓存网站的过程为:

用户向浏览器提供要访问的域名;浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的IP地址;浏览器使用所得到的IP地址,向域名的服务主机发出数据访问请求;浏览器根据域名主机返回的数据显示网页的内容。欢迎关注笔者,优质文章都在这里等你。

通过以上四个步骤,浏览器完成从用户处接收用户要访问的域名到从域名服务主机处获取数据的整个过程。

CDN网络是在用户和服务器之间增加Cache层,如何将用户的请求引导到Cache上获得源服务器的数据,主要是通过接管DNS实现,下面让我们看看访问使用CDN缓存后的网站的过程:

通过上图,我们可以了解到,使用了CDN缓存后的网站的访问过程变为:

1)、用户向浏览器提供要访问的域名;

2)、浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实际IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;在此过程中,使用的全局负载均衡DNS解析,如根据地理位置信息解析对应的IP地址,使得用户能就近访问。

3)、此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,向缓存服务器发出访问请求;

4)、缓存服务器根据浏览器提供的要访问的域名,通过Cache内部专用DNS解析得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求;

5)、缓存服务器从实际IP地址得得到内容以后,一方面在本地进行保存,以备以后使用,另一方面把获取的数据返回给客户端,完成数据服务过程;

6)、客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。

CDN网络具体实现过程

通过以上的分析我们可以得到,为了实现既要对普通用户透明(即加入缓存以后用户客户端无需进行任何设置,直接使用被加速网站原有的域名即可访问,又要在为指定的网站提供加速服务的同时降低对ICP的影响,只要修改整个访问过程中的域名解析部分,以实现透明的加速服务,下面是CDN网络实现的具体操作过程。

1)、作为ICP,只需要把域名解释权交给CDN运营商,其他方面不需要进行任何的修改;操作时,ICP修改自己域名的解析记录,一般用cname方式指向CDN网络Cache服务器的地址。

2)、作为CDN运营商,首先需要为ICP的域名提供公开的解析,为了实现sortlist,一般是把ICP的域名解释结果指向一个CNAME记录;

3)、当需要进行sortlist时,CDN运营商可以利用DNS对CNAME指向的域名解析过程进行特殊处理,使DNS服务器在接收到客户端请求时可以根据客户端的IP地址,返回相同域名的不同IP地址;

4)、由于从cname获得的IP地址,并且带有hostname信息,请求到达Cache之后,Cache必须知道源服务器的IP地址,所以在CDN运营商内部维护一个内部DNS服务器,用于解释用户所访问的域名的真实IP地址;

5)、在维护内部DNS服务器时,还需要维护一台授权服务器,控制哪些域名可以进行缓存,而哪些又不进行缓存,以免发生开放代理的情况。

商用CDN系统

现在已经投入商用的CDN系统,基本都是同时提供Web CDN能力和流媒体CDN能力的,而且这两种能力的实现在系统内部几乎都是互相隔离的,从调度系统到节点设备都没有交叉互用。

流媒体CDN与Web CDN的设计差异(设计差异)

流媒体CDN的Cache设备与Web Cache无论在软件实现还是硬件要求上差异都很大,我们很少看到这两种业务共用同一台设备

当用户请求的内容在Cache上命中时,Cache直接向用户提供流服务,此时Cache设备充当流媒体服务器的角色; 当用户请求内容未能在Cache上命中时,Cache会从上一级Cache(二级缓存设备或中间缓存设备)或者源站服务器获取内容,再提供给用户。 Cache在用户与另一个流媒体服务器之间扮演代理的角色。

分布式存储技术因其大容量、低成本的特点,目前也被业界关注和研究作为流媒体CDN系统的存储解决方案之一。常用的分布 式存储技术包括分布式文件系统和分布式数据库,由于采用了数据副本冗余(每份数据复制2~3份)、磁盘冗余(Raid1、Raid10、Raid5)等技 术,通常可以提供良好的数据容错机制,当单台存储设备断电或者单个存储磁盘失效时,整个存储系统仍能正常工作。

参考文章:https://www.cnblogs.com/losbyday/p/5843960.html

您的转发+关注就是对笔者最大的支持,欢迎关注。

对大厂架构设计,BAT面试题分享,编程语言理论或者互联网圈逸闻趣事这些感兴趣,欢迎关注笔者,没有错,干货文章都在这里。

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

青春作文记叙文 插花作文 欢庆元旦作文400字 给老师的一封信作文500 走进教室作文 秋天的作文提纲 丰富多彩的暑假作文 观察物体的作文 科普类的作文 山西风景作文 中秋节的夜晚作文 遗憾的作文600字 小学生剪纸作文 我喜欢的地方作文 我的家乡宝鸡作文 望子成龙作文 帮助他人的作文600字 老师真好的作文 我懂得了珍惜什么作文 秋游作文结尾怎么写 介绍一种水果作文400字 疫情后作文 小学作文写作 诚信很重要作文 你是我最牵挂的人作文 高中励志作文800字 关于古镇的作文 找回什么作文 介绍信英语作文 什么最什么作文