谈谈cdn

前言

这次为什么想讲解一下cdn呢?前段时间不是一直在面试吗,面了几次都问到了cdn有关的问题,但是可惜的的我只知道用cdn,知道项目中什么采用了cdn(js远程加载库文件)。所以这次痛定思痛,通过网上的学习,在这里总结一下。

什么是cdn?

大家都知道,前后端分离的项目,数据资源都是来自服务器,所以就必然存在客户端向服务端发送请求获得数据。大家有没有想过,一个知名的APP,用户量肯定是非常大的,这么大的客户量去请求一个服务器,这肯定会爆,而且客户端的效果也不佳。所以就有了cdn的存在。
这里通过一个生活中的例子来显示cdn的工作过程。京东超市,在京东购物的一大优势就是快,那是什么导致京东的物流这么快呢?那就是京东在全国范围内建立了很多实体门店(或者说是仓库吧)。通过总的仓库提前向各个城市分发所需物品,然后用户所购买的物品就有本地的实体店发出,不用从总仓库发货,所以这样就节省了时间。
cdn也是同样的原理,就是建立本地节点(边缘节点),通过总/根节点(中心节点)向本地节点分发内容,用户在发送请求获得数据的时候,cdn系统会匹配最近的本地节点,然后返回数据,这样就实现了cdn加载。是不是和刚刚物流的例子思想一模一样,哈!

上面是我个人对cdn的理解,下面我引用了别人的解释,他解析的更加精炼:

CDN的全称是 Content Delivery Network ,即内容分发网络。其目的是通过在现有的Internet流程中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘” ,使用户可以就近取得所需的内容,解决 Internet 网络拥塞状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,解决用户访问网站的响应速度慢的根本原因。

cdn的原理

cdn的组成部分:中心节点,边缘节点

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

边缘节点
CDN边缘节点主要指异地分发节点,由负载均衡设备、高速缓存服务器两部分组成。
负载均衡设备负责每个节点中各个Cache的负载均衡,保证节点的工作效率;同时还负责收集节点与周围环境的信息,保持与全局负载均衡DNS的通信,实现整个系统的负载均衡。
高速缓存服务器(Cache)负责存储客户网站的大量信息,就像一个靠近用户的网站服务器一样响应本地用户的访问请求。通过全局负载均衡DNS的控制,用户的请求被透明地指向离他最近的节点,节点中Cache服务器就像网站的原始服务器一样,响应终端用户的请求。因其距离用户更近,故其响应时间才更快。

cdn的工作流程
这里我查到一个解释的清楚的文章,(请叫我原理的搬运工,不懂就学,哈)

1,当用户点击网站页面上的内容URL,先经过本地DNS系统解析,如果本地DNS服务器没有相应域名的缓存,则本地DNS系统会将域名的解析权交给CNAME指向的CDN专用DNS服务器。
2,CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回给用户。
3,用户向CDN的全局负载均衡设备发起URL访问请求。
4,CDN全局负载均衡设备根据用户IP地址,以及用户请求的URL,选择一台用户所属区域的区域负载均衡设备,并将请求转发到此设备上。
5,基于以下这些条件的综合分析之后,区域负载均衡设备会选择一个最优的缓存服务器节点,并从缓存服务器节点处得到缓存服务器的IP地址,最终将得到的IP地址返回给全局负载均衡设备:
6,根据用户IP地址,判断哪一个边缘节点距用户最近;
7,根据用户所请求的URL中携带的内容名称,判断哪一个边缘节点上有用户所需内容;
8,查询各个边缘节点当前的负载情况,判断哪一个边缘节点尚有服务能力。
9,全局负载均衡设备把服务器的IP地址返回给用户。
10,用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。
11,如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。

看图理解一下:

在这里插入图片描述

cdn的作用及优点

总的来说采用cdn,就是为了实现负载均衡,也可以预防攻击,实现数据快速加载。
下面列举一下cdn的好处:

1,提升网页加载速度,
2,处理高流量负载
3,本完成本地化覆盖
4,减少带宽消耗
5,在多台服务器间均衡负载
6,使你的网站免于DDoS(拒绝服务)的攻击

最后申明一下,由于个人是从网上学习了解cdn,所以引用了部分他人的解释,哈哈,请谅解!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值