5分钟了解CDN 加速原理(1)

最后

由于细节内容实在太多了,为了不影响文章的观赏性,只截出了一部分知识点大致的介绍一下,每个小节点里面都有更细化的内容!

小编准备了一份Java进阶学习路线图(Xmind)以及来年金三银四必备的一份《Java面试必备指南》

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 缓解甚至消除了不同运营商之间互联的瓶颈造成的影响

  • 减轻了各省的出口带宽压力

  • 缓解了骨干网的压力

  • 优化了网上热点内容的分布

二、CDN工作原理

传统访问过程

在这里插入图片描述

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

  • 用户输入访问的域名,操作系统向 LocalDns 查询域名的 ip 地址

  • LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期)

  • ROOT DNS将域名授权 dns记录回应给 LocalDns

  • LocalDns 得到域名的授权 dns 记录后,继续向域名授权 dns 查询域名的 ip 地址

  • 域名授权 dns 查询域名记录后,回应给 LocalDns

  • LocalDns 将得到的域名ip地址,回应给 用户端

  • 用户得到域名 ip 地址后,访问站点服务器

  • 站点服务器应答请求,将内容返回给客户端

CDN 访问过程

在这里插入图片描述

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

  • 用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址.

  • LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期)

  • ROOT DNS将域名授权dns记录回应给 LocalDns

  • LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址

  • 域名授权dns 查询域名记录后(一般是CNAME),回应给 LocalDns

  • LocalDns 得到域名记录后,向智能调度DNS查询域名的ip地址

  • 智能调度DNS 根据一定的算法和策略(比如静态拓扑,容量等),将最适合的CDN节点ip地址回应给 LocalDns

  • LocalDns 将得到的域名ip地址,回应给 用户端

  • 用户得到域名ip地址后,访问站点服务器

  • CDN 节点服务器应答请求,将内容返回给客户端。(缓存服务器一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程)

通过以上的分析我们可以得到,为了实现对普通用户透明(使用缓存后用户客户端无需进行任何设置)访问,需要使用 DNS(域名解析)来引导用户来访问 Cache 服务器,以实现透明的加速服务。由于用户访问网站的第一步就是域名解析,所以通过修改dns来引导用户访问是最简单有效的方式。

CDN网络的组成要素

对于普通的 Internet 用户,每个 CDN 节点就相当于一个放置在它周围的网站服务器。

通过对 DNS 的接管,用户的请求被透明地指向离他最近的节点,节点中 CDN 服务器会像网站的原始服务器一样,响应用户的请求。 由于它离用户更近,因而响应时间必然更快。

从上面图中虚线圈起来的那块,就是 CDN 层,这层是位于用户端和站点服务器之间。

智能调度 DNS(比如 f5 的 3DNS)

  • 智能调度DNS是CDN服务中的关键系统.当用户访问加入CDN服务的网站时,域名解析请求将最终由 “智能调度DNS”负责处理。

  • 它通过一组预先定义好的策略,将当时最接近用户的节点地址提供给用户,使用户可以得到快速的服务。

  • 同时它需要与分布在各地的CDN节点保持通信,跟踪各节点的健康状态、容量等信息,确保将用户的请求分配到就近可用的节点上.

缓存功能服务

  • 负载均衡设备(如lvs,F5的BIG/IP)

  • 内容Cache服务器(如squid)

  • 共享存储

三、名词解释

CNAME记录(CNAME record)

CNAME即别名( Canonical Name );可以用来把一个域名解析到另一个域名,当 DNS 系统在查询 CNAME 左面的名称的时候,都会转向 CNAME 右面的名称再进行查询,一直追踪到最后的 PTR 或 A 名称,成功查询后才会做出回应,否则失败。

例如,你有一台服务器上存放了很多资料,你使用docs.example.com去访问这些资源,但又希望通过documents.example.com也能访问到这些资源,那么你就可以在您的DNS解析服务商添加一条CNAME记录,将documents.example.com指向docs.example.com,添加该条CNAME记录后,所有访问documents.example.com的请求都会被转到docs.example.com,获得相同的内容。

面试题总结

其它面试题(springboot、mybatis、并发、java中高级面试总结等)

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**

需要这份系统化的资料的朋友,可以点击这里获取

  • 22
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值