CDN 技术详解(DNS,GSLB,Cache)

CDN 是什么

CDN(Content Delivery Network,内容分发网络),即全网内容加速服务。为了尽可能的避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定,由此,诞生了 CDN 加速服务。

CDN 的作用

利用遍布全球(全国,或企业自行规划的各大城市及区域)的加速节点,帮助企业将业务内容发布至最接近用户的边缘节点,使用户的请求能够就近得到快速响应,无需进行多次网络转发,避免请求受地域、带宽、服务器能力等因素影响导致的高延迟、低可用性等问题。

网站的传统访问过程

  1. 用户在浏览器中输入目标网站的 URL
  2. 浏览器向域名解析服务器(DNS,Domain Name System,域名系统,是因特网上域名和 IP 地址相互映射的一个分布式数据库)发出解析请求,获得此域名对应的 IP 地址
  3. 浏览器得到这个 IP 地址,向其对应的服务器发出访问请求
  4. 目标服务器对此作出响应,将数据回传至用户浏览器并显示出来

CDN 如何加速

与传统访问方式不同,CDN 网络则是在用户和服务器之间增加 Cache 层,将用户的访问请求引导到 Cache 节点而不是目标服务器站点,要实现这一目的,主要是通过接管 DNS 实现。

以腾讯 CDN 架构图为例:

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

  1. 用户在浏览器中输入目标域名
  2. 浏览器向本地域名解析系统(Local DNS)发出解析请求
  3. 经过 DNS 递归查询,请求被转移至 Tencent DNS(GSLB,Global Server Load Balance,全局负载均衡)系统,此时还没有产生 Cache 层
  4. GSLB 返回最佳 CDN 接入节点的 IP,同时 Local DNS 缓存此接入节点(在此过程中,会根据客户端的 IP 地址,地理位置,入网类型电信还是网通,返回最佳接入节点)
  5. 用户对此 CDN 接入节点发起请求,CDN 网络经过内部路由,并转发请求至源服务器
  6. 源服务器返回响应的数据,CDN 节点将数据返回至 CDN 接入节点
  7. CDN 接入节点将数据返回给用户,同时缓存数据

CDN 节点缓存了数据,任何用户再次请求这一份数据时,CDN 缓存会直接返回,并不需要再由源服务器进行处理,这大大的加快了数据往返的速度,对于静态资源的加速尤为显著。即便请求动态资源,比如动态页面,其中也是有许多的静态资源是不会经常改变的,只要控制好缓存机制,也会有明显的加速效果。

CDN 网络的架构及应用

利用 CDN 网络,网站用户无需投资价值不菲的服务器、网络带宽及相应的人力成本,便能实现将网站内容发布到离终端用户距离最近、路由最短的网际边缘 Cache 节点,创造完美、快捷的网站使用体验。

一般,CDN 网络主要由中心节点、边缘节点两部分构成。最简单的 CDN 网络只需一台负责全局负载均衡的 DNS 和各节点一台 Cache 即可运行。 DNS 支持根据用户源 IP 地址解析不同的 IP,实现就近访问。为了保证高可用性,CDN 网管中心需要监控各节点的流量、健康状况。当一个节点的单台 Cache 承载数量不够时,才需要多台 Cache,多台 Cache 同时工作时,才需要负载均衡器,使 Cache 群协同工作。

CDN 中心节点

包括 CDN 网管中心和全局负载均衡 DNS 重定向解析系统,负责整个 CDN 网络的分发及管理。

CDN 网管中心

是整个 CDN 能够正常运转的基础保证,它不仅能对整个 CDN 网络中的各个子系统和设备进行实时监控,对各种故障产生相应的告警,还可以实时监测到系统中总的流量和各节点的流量,并保存在系统数据库中,使网管人员能够方便地进行进一步分析。一套完善的网管系统,允许用户按需对系统配置进行修改。

全局负载均衡 DNS

通过一组预先定义好的策略,将当时最接近用户的 Cache 节点地址提供给用户,使用户能够得到快速的服务。同时,它还与分布在各地的所有 CDN 节点保持持续通信,搜集各节点的通信状态,确保不会将用户的请求分发到不可用、或不健康的 Cache 节点上。

CDN 边缘节点

主要指异地分发节点,由负载均衡设备(如果缓存也需要集群的话)、高速缓存服务器两部分组成。 负载均衡设备负责每个节点中各个 Cache 的负载均衡,保证节点的工作效率;同时还负责收集节点与周围环境的信息,保持与全局负载均衡 DNS 的通信,实现整个系统的负载均衡。

高速缓存服务器(Cache)

负责存储客户网站的大量信息,就像一个靠近用户的网站服务器一样响应本地用户的访问请求。通过全局负载均衡 DNS 的控制,用户的请求被透明地指向离他最近的节点,节点中 Cache 服务器就像网站的原始服务器一样,响应终端用户的请求。因其距离用户更近,故其响应时间才更快。

CDN 供应商

传统 CDN 供应商,市场份额较大的有:上海帝联科技、北京蓝汛通信技术、北京快网科技、上海网宿科技等。现巨型互联网公司(百度、阿里巴巴、腾讯)也加入了其中。由于巨型互联网公司的介入,云技术的发展,会在一定方面打压传统 CDN 供应商,小型公司会更青睐这些巨型互联网公司,但是对于大型公司,传统CDN厂商的优势明显。

时间: 2024-12-28 08:51:08

CDN 技术详解(DNS,GSLB,Cache)的相关文章

CDN技术详解及实现原理

CDN技术详解 一本好的入门书是带你进入陌生领域的明灯,<CDN技术详解>绝对是带你进入CDN行业的那盏最亮的明灯.因此,虽然只是纯粹的重点抄录,我也要把<CDN技术详解>的精华放上网.公诸同好. 第一章    引言    “第一公里”是指万维网流量向用户传送的第一个出口,是网站服务器接入互联网的链路所能提供的带宽.这个带宽决定了一个 网站能为用户提供的访问速度和并发访问量.如果业务繁忙,用户的访问数越多,拥塞越严重,网站会在最需要向用户提供服务时失去用户.(还有“中间一公里” 和

CDN技术详解笔记

1.影响网络传输的四个因素(1)“第一公里”:网站服务器接入互联网的链路所能提供的带宽.(2)“最后一公里”:用户接入带宽.(3)对等互联关口:不同网络之间的互联互通带宽.(4)长途骨干传输:首先是长距离传输时延问题,其次是骨干网拥塞问题 2.用户通过浏览器访问网站的过程如下图所示: ①用户在自己的浏览器中输入要访问的网站域名. ②浏览器向本地DNS服务器请求对该域名的解析. ③本地DNS服务器中如果缓存有这个域名的解析结果,则直接用户的解析请求. ④本地DNS服务器中如果没有关于这个域名的解析

CDN技术详解(七)

动态内容加速服务的实现 随着Web2.0的兴起,产生了动态网页.个性化内容.电子交易数据等内容的加速,这些就涉及了动态内容加速技术. 静态内容的加速,都是对于表现层的加速,对于动态页面等内容的加速,则要涉及逻辑层和数据访问层的加速技术. 动态内容的提供不仅仅是HTML页面的设计及编辑,它还需要有后台数据库.应用逻辑程序的支持,以实现与用户的动态交互. Web系统由表现层.业务逻辑层.数据访问层+用户数据层 表现层是Web系统与外部系统的交互界面,这一层通常由HTTP服务器组成,负责接收用户端的H

实现高性能纠删码引擎 | 纠删码技术详解(下)

作者介绍: 徐祥曦,七牛云工程师,独立开发了多套高性能纠删码/再生码编码引擎.柳青,华中科技大学博士,研究方向为基于纠删码的分布式存储系统. 前言: 在上篇<如何选择纠删码编码引擎>中,我们简单了解了 Reed-Solomon Codes(RS 码)的编/解码过程,以及编码引擎的评判标准.但并没有就具体实现进行展开,本篇作为<纠删码技术详解>的下篇,我们将主要探讨工程实现的问题. 这里先简单提炼一下实现高性能纠删码引擎的要点:首先,根据编码理论将矩阵以及有限域的运算工程化,接下来主

&lt;转&gt;详解DNS的常用记录(上):DNS系列之二

详解DNS的常用记录(上) 在上篇博文中,我们介绍了DNS服务器的体系结构,从中我们了解到如果我们希望注册一个域名,那么必须经过顶级域名服务器或其下级的域名服务器为我们申请的域名进行委派,把解析权委派到我们的DNS服务器上,这样我们才可以获得对所申请域名的解析权.本文中我们将再进一步,假设我们已经为公司成功申请了一个域名hexun.com,现在hexun.com的解析权被委派到公司的DNS服务器202.99.16.1,那我们在202.99.16.1服务器上该进行什么样的配置呢? 一 安装DNS服

J2EE学习篇之--JQuery技术详解

前面我们讲解了的J2EE的技术都是服务端的技术,下面我们来看一下前端的一些开发技术,这一篇我们来看一下jQuery技术 简介: jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. jQuery是继prototype之后又一个优秀的Javascript框架.其宗旨是--WRITE LESS,DO MORE,写更少的代码,做更多的事情. 它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏

Zookeeper技术:分布式架构详解、分布式技术详解、分布式事务

一.分布式架构详解 1.分布式发展历程 1.1 单点集中式 特点:App.DB.FileServer都部署在一台机器上.并且访问请求量较少 1.2? 应用服务和数据服务拆分 ?特点:App.DB.FileServer分别部署在独立服务器上.并且访问请求量较少 1.3? 使用缓存改善性能 ?特点:数据库中频繁访问的数据存储在缓存服务器中,减少数据库的访问次数,降低数据库的压力 1.4 应用服务器集群 ?特点:多台应用服务器通过负载均衡同时对外提供服务,解决单台服务器处理能力上限的问题 1.5 数据

Linux磁盘阵列技术详解(二)--raid 1创建

我在Linux磁盘阵列技术详解(一)里已经详细介绍了几种RAID磁盘阵列方式,原理以及创建raid 0 的详细步骤.那么这篇文档就着重讲解如何创建raid 1的技术: 步骤如下: ① 分区 同样我们还是以一块硬盘的不同分区为例,实际工作中应该是不同的硬盘才对. 具体分区步骤不再赘述! 分区后结果如下图所示: ② 创建raid 1 mdadm -C -v /dev/md1 -l 1 -n 2 -x 1 /dev/sdc1 /dev/sdc2 /dev/sdc3 或者 mdadm -C -v /de

Protocol Buffer技术详解(语言规范)

Protocol Buffer技术详解(语言规范) 该系列Blog的内容主体主要源自于Protocol Buffer的官方文档,而代码示例则抽取于当前正在开发的一个公司内部项目的Demo.这样做的目的主要在于不仅可以保持Google文档的良好风格和系统性,同时再结合一些比较实用和通用的用例,这样就更加便于公司内部的培训,以及和广大网友的技术交流.需要说明的是,Blog的内容并非line by line的翻译,其中包含一些经验性总结,与此同时,对于一些不是非常常用的功能并未予以说明,有兴趣的开发者