乐趣区

关于java:架构必问CDN-是什么为什么快

起源:https://www.jianshu.com/p/1da…

一、什么是 CDN

CDN 的全称是 (Content Delivery Network),即内容散发网络。其目标是通过在现有的 Internet 中减少一层新的 CACHE(缓存) 层,将网站的内容公布到最靠近用户的网络”边缘“的节点,使用户能够就近获得所需的内容,进步用户拜访网站的响应速度。从技术上全面解决因为网络带宽小、用户访问量大、网点散布不均等起因,进步用户拜访网站的响应速度。

简略的说,CDN 的工作原理就是将您源站的资源缓存到位于寰球各地的 CDN 节点上,用户申请资源时,就近返回节点上缓存的资源,而不须要每个用户的申请都回您的源站获取,防止网络拥塞、缓解源站压力,保障用户拜访资源的速度和体验

CDN 对网络的优化作用次要体现在如下几个方面

  • 解决服务器端的“第一公里”问题
  • 缓解甚至打消了不同运营商之间互联的瓶颈造成的影响
  • 加重了各省的进口带宽压力
  • 缓解了骨干网的压力
  • 优化了网上热点内容的散布

二、CDN 工作原理

传统拜访过程

传统拜访过程

「由上图可见,用户拜访未应用 CDN 缓存网站的过程为:」

1. 用户输出拜访的域名, 操作系统向 LocalDns 查问域名的 ip 地址.

2.LocalDns 向 ROOT DNS 查问域名的受权服务器(这里假如 LocalDns 缓存过期)

3.ROOT DNS 将域名受权 dns 记录回应给 LocalDns

4.LocalDns 失去域名的受权 dns 记录后, 持续向域名受权 dns 查问域名的 ip 地址

5. 域名受权 dns 查问域名记录后,回应给 LocalDns

6.LocalDns 将失去的域名 ip 地址,回应给 用户端

7. 用户失去域名 ip 地址后,拜访站点服务器

8. 站点服务器应答申请,将内容返回给客户端.

CDN 拜访过程

「通过上图,咱们能够理解到,应用了 CDN 缓存后的网站的拜访过程变为:」

1. 用户输出拜访的域名, 操作系统向 LocalDns 查问域名的 ip 地址.

2.LocalDns 向 ROOT DNS 查问域名的受权服务器(这里假如 LocalDns 缓存过期)

3.ROOT DNS 将域名受权 dns 记录回应给 LocalDns

4.LocalDns 失去域名的受权 dns 记录后, 持续向域名受权 dns 查问域名的 ip 地址

5. 域名受权 dns 查问域名记录后(个别是 CNAME),回应给 LocalDns

6.LocalDns 失去域名记录后, 向智能调度 DNS 查问域名的 ip 地址

7. 智能调度 DNS 依据肯定的算法和策略(比方动态拓扑,容量等), 将最适宜的 CDN 节点 ip 地址回应给 LocalDns

8.LocalDns 将失去的域名 ip 地址,回应给 用户端

9. 用户失去域名 ip 地址后,拜访站点服务器

10.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,取得雷同的内容。

CNAME 域名

接入 CDN 时,在 CDN 提供商控制台增加完减速域名后,您会失去一个 CDN 给您调配的 CNAME 域名,您须要在您的 DNS 解析服务商增加 CNAME 记录,将本人的减速域名指向这个 CNAME 域名,这样该域名所有的申请才会都将转向 CDN 的节点,达到减速成果。

DNS

DNS 即 Domain Name System,是域名解析服务的意思。它在互联网的作用是:把域名转换成为网络能够辨认的 ip 地址。人们习惯记忆域名,但机器间相互只认 IP 地址,域名与 IP 地址之间是一一对应的,它们之间的转换工作称为域名解析,域名解析须要由专门的域名解析服务器来实现,整个过程是主动进行的。比方:上网时输出的 www.baidu.com 会主动转换成为220.181.112.143

常见的 DNS 解析服务商有:阿里云解析,万网解析,DNSPod,新网解析,Route53(AWS),Dyn,Cloudflare 等。

回源 host

回源 host:回源 host 决定回源申请拜访到源站上的具体某个站点。

例子 1:源站是域名源站为 www.a.com, 回源 host 为www.b.com, 那么理论回源是申请到www.a.com 解析到的 IP, 对应的主机上的站点www.b.com

例子 2:源站是 IP 源站为 1.1.1.1, 回源 host 为www.b.com, 那么理论回源的是1.1.1.1 对应的主机上的站点www.b.com

协定回源

指回源时应用的协定和客户端拜访资源时的协定保持一致,即如果客户端应用 HTTPS 形式申请资源,当 CDN 节点上未缓存该资源时,节点会应用雷同的 HTTPS 形式回源获取资源;同理如果客户端应用 HTTP 协定的申请,CDN 节点回源时也应用 HTTP 协定。

近期热文举荐:

1.1,000+ 道 Java 面试题及答案整顿(2022 最新版)

2. 劲爆!Java 协程要来了。。。

3.Spring Boot 2.x 教程,太全了!

4. 别再写满屏的爆爆爆炸类了,试试装璜器模式,这才是优雅的形式!!

5.《Java 开发手册(嵩山版)》最新公布,速速下载!

感觉不错,别忘了顺手点赞 + 转发哦!

退出移动版