文档章节

CDN工作机制

亚特兰缇斯
 亚特兰缇斯
发布于 2016/03/31 14:53
字数 816
阅读 75
收藏 7
点赞 1
评论 0
CDN

一、CDN工作机制

1.CDN原理

    CDN(Content Delivery Network)内容分发网络,它是通过在现有的Internet中增加一层新的网站架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需内容,提高用户访问网站的响应速度。

CDN=镜像(Mirror)+缓存(Cache)+整体负载均衡(GSLB)。

2.CDN应用

    目前CDN都以缓存网站中的静态数据为主,如CSS、JS、图片和静态页面等数据。用户从主站服务器请求到动态内容后,再从CDN上下载静态数据,从而加速网页数据内容的下载数据,如淘宝有90%以上的数据都是由CDN来提供。天猫CDN静态架构演变

二、CDN架构

①当用户点击网站页面上的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。

②CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。

③用户向CDN的全局负载均衡设备发起内容URL访问请求。

④CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。

⑤区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户IP地址,判断哪一台服务器距用户最近;根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。

⑥全局负载均衡设备把服务器的IP地址返回给用户。

⑦用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。

DNS服务器根据用户IP地址,将域名解析成相应节点的缓存服务器IP地址,实现用户就近访问。使用CDN服务的网站,只需将其域名解析权交给CDN的GSLB设备,将需要分发的内容注入CDN,就可以实现内容加速了。

三、CDN动态加速

    在CDN的DNS解析中通过动态的链路探测来寻找回源最好的一条路径,然后通过DNS的调度将所有请求调度到选定的这条路径上回源,从而加速用户访问的效率。

© 著作权归作者所有

共有 人打赏支持
亚特兰缇斯
粉丝 13
博文 85
码字总数 48897
作品 0
崇明
CDN原理详细解析

1.用户向浏览器输入www.web.com这个域名,浏览器第一次发现本地没有dns缓存,则向网站的DNS服务器请求; 2.网站的DNS域名解析器设置了CNAME,指向了www.web.51cdn.com,请求指向了CDN网络中的...

xiaoxiongmao8
2017/05/13
0
0
复杂的web---web中B/S网络架构

web中B/S网络架构 1:web中B/S网络架构 2:CDN工作机制和架构 3:负载均衡; B/S分别是浏览器/服务器,架构流程为; 当你访问网站的时候,浏览器发送各种请求给浏览器,服务器返回各种默认资...

nupt-liguo
07/16
0
0
web开发中的几种缓存机制

我们web开发中缓存机制的种类 1.数据库缓存 我们可能听说过memcached,它就是一种数据库层面的缓存方案。数据库缓存是指,当web应用的关系比较复杂,数据库中的表很多的时候,如果频繁进行 ...

jj_cui
2016/12/22
28
0
高性能linux业务集群架构搭建、调优、自动化运维——index(更新中)

工作中零零散散写了些博客,总结了些知识。东西一多就乱,如果能有一个主页把所有内容串起来就会比较方便,就像一个网站有了内容后需要一个index主页一样,然后就有了这篇置顶博文。 现有目录...

愚人乙
2016/05/04
0
0
天猫浏览型应用的CDN静态化架构演变

在天猫双11活动中,商品详情、店铺等浏览型系统,通常会承受超出日常数倍甚至数十倍的流量冲击。随着历年来双11流量的大幅增加,每年这些浏览型系统都要面临容量评估、硬件扩容、性能优化等各...

胡阳
2014/05/07
0
0
CDN

>CDN:Content Delivery Network(内容分发网络) 基本思路:尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构...

懿懿懿
2017/12/06
0
0
CDN加速知识篇

CDN加速知识篇 CDN的全称是ContentDeliveryNetwork,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各...

筚路
2016/06/05
0
0
简单了解tengine

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。最终目标是打造一个高效、稳定、安全、易用的Web平台。 1、基本的HTTP服务器...

hebsun
2017/09/25
0
0
CDN学习笔记二(技术详解)

一本好的入门书是带你进入陌生领域的明灯,《CDN技术详解》绝对是带你进入CDN行业的那盏最亮的明灯。因此,虽然只是纯粹的重点抄录,我也要把《CDN技术详解》的精华放上网。公诸同好。 第一章...

tinywan1227
2016/11/15
0
0
微信客户端跨平台组件--Mars

Mars 是微信官方的终端基础组件,是一个使用 C++ 编写的业务性无关、平台性无关的基础组件。目前已接入微信 Android、iOS、Mac、Windows、WP 等客户端。 主要包括以下几个部分: COMM:基础库...

astrozhou
2016/12/28
17.8K
9

没有更多内容

加载失败,请刷新页面

加载更多

下一页

设计模式-工厂模式

工厂模式 解释 根据参数返回对应的实例使用该实例进行操作 BeanFactory Object obj = BeanFactory.getBean(String name);getBean方法中根据name参数进行处理在程序外部使用obj实例增加n...

郭里奥
6分钟前
0
0
python使用有序字典

python自带的collections包中有很多有用的数据结构可供使用,其中有个叫OrderedDict类,它可以在使用的时候记录元素插入顺序,在遍历使用的时候就可以按照原顺序遍历。 a = {"a":1,"b"...

芝麻糖人
30分钟前
0
0
RestTemplate HttpMessageConverter

RestTemplate 微信接口 text/plain HttpMessageConverter

微小宝
31分钟前
0
0
mysql视图/存储过程/函数/事件/触发器

--语法参考:https://dev.mysql.com/doc/ (当前用的是5.6) https://dev.mysql.com/doc/refman/5.6/en/sql-syntax-data-manipulation.html --视图 CREATE VIEW test.v AS SELECT * FROM t;......

坦途abc
32分钟前
0
0
MySQL参数优化案例

环境介绍 硬件配置 cpu核心数 内存大小 磁盘空间 16核 256G 3T 软件环境 操作系统版本 mysql版本 表数目 单表行数 centos-7.4 mysql-5.7.22 128张表 2kw行 优化层级与指导思想 优化层级 MySQ...

小致dad
42分钟前
0
0
【HAVENT原创】NodeJS 短网址开发(调用第三方接口)

最近想弄个短网址的示例站点,在网上搜集了一些代码,都需要数据库支持,所以只能自己写个简单的不需要数据库支持的(PS:那就只能借调第三方的接口了)。 index.js 启动文件 'use strict';...

HAVENT
42分钟前
0
0
219. Contains Duplicate II - LeetCode

Question 219. Contains Duplicate II Solution 题目大意:数组中两个相同元素的坐标之差小于给定的k,返回true,否则返回false 思路:用一个map记录每个数的坐标,如果数相同,如果坐标差小...

yysue
51分钟前
0
0
Android 自动生成java bean

背景: 想搞一个自动生成java bean 的方案。 首先想到的是注解自动生成代码的方法。但是看了看注解相关的东西,发现对已有的类,增加方法,目前没有找到办法。 继续goole :发现了这里。 ht...

Carlyle_Lee
55分钟前
0
0
图片加载相关

本文记载有关于 图片懒加载、图片模糊加载等与图片加载相关的知识,后续会更新 图片懒加载 利用img标签src属性,在该图片快到达客户可视范围时,给img添加src属性(添加后,会发起请求下载图...

littleFaye
56分钟前
0
0
面试宝典-怎么实现分布式锁

1. 基于数据库表做乐观锁,用于分布式锁。 2. 使用memcached的add()方法,用于分布式锁。 3. 使用redis的setnx()、expire()方法,用于分布式锁。 设置过期时间防止死锁,但是如果在setnx和e...

suyain
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部