cdn

什么是CDN?引用阿里云对CDN的介绍

链接:https://help.aliyun.com/document_detail/27101.html?spm=a2c4g.11174283.3.1.n09AhU

以下是部分内容:

简介
CDN(内容分发网络)全称是 Content Delivery Network,是建立并覆盖在承载网之上、由分布在不同区域的边缘节点服务器群组成的分布式网络,替代传统以WEB Server为中心的数据传输模式。

简单的说,CDN的工作原理就是将您源站的资源缓存到位于全国各地的CDN节点上,用户请求资源时,就近返回节点上缓存的资源,而不需要每个用户的请求都回您的源站获取,避免网络拥塞、分担源站压力,保证用户访问资源的速度和体验。

架构图
使用CDN后的http请求处理流程如下图:

知乎上更通俗的解释

作者:视界云
链接:https://www.zhihu.com/question/37353035/answer/175217812
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

CDN

全称:Content Delivery Network或Content Ddistribute Network,即内容分发网络

基本思路:

尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。

目的:

解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度和成功率。

控制时延无疑是现代信息科技的重要指标,CDN的意图就是尽可能的减少资源在转发、传输、链路抖动等情况下顺利保障信息的连贯性。

CDN就是扮演者护航者和加速者的角色,更快准狠的触发信息和触达每一个用户,带来更为极致的使用体验。
再通俗点说就是在网速一定的前提下,CDN就像网络中快递员小哥

<img src="https://pic3.zhimg.com/50/v2-35eeda954a433e794e89b012dfad7231_hd.jpg" data-rawwidth="627" data-rawheight="418" class="origin_image zh-lightbox-thumb" width="627" data-original="https://pic3.zhimg.com/v2-35eeda954a433e794e89b012dfad7231_r.jpg">
而且CDN这个快递员很是聪明
TA不是在用蛮力瞎跑、乱撞

<img src="https://pic2.zhimg.com/50/v2-f4c28608e1c61728d7e905162ab664cc_hd.gif" data-rawwidth="600" data-rawheight="424" data-thumbnail="https://pic2.zhimg.com/50/v2-f4c28608e1c61728d7e905162ab664cc_hd.jpg" class="origin_image zh-lightbox-thumb" width="600" data-original="https://pic2.zhimg.com/v2-f4c28608e1c61728d7e905162ab664cc_r.gif">

TA还承建了很多家快递点,就近快递(缓存)

TA善于优化快递路径(调度)
还会对包裹进行更合理的重新打包(协议优化)

基础架构:最简单的CDN网络由一个DNS服务器和几台缓存服务器组成:

当用户点击网站页面上的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。
CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。
用户向CDN的全局负载均衡设备发起内容URL访问请求。
CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。
区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户IP地址,判断哪一台服务器距用户最近;根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。
全局负载均衡设备把服务器的IP地址返回给用户。
用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。
<img src="https://pic3.zhimg.com/50/v2-5793aec83fc645e002a1cd70ab7209a3_hd.jpg" data-rawwidth="600" data-rawheight="344" class="origin_image zh-lightbox-thumb" width="600" data-original="https://pic3.zhimg.com/v2-5793aec83fc645e002a1cd70ab7209a3_r.jpg">

服务模式:

简单地说,CDN是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在。

通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。

举例说明:

国内访问量较高的网站、直播、视频平台,均使用CDN网络加速技术,虽然网站的访问巨大,但无论在什么地方访问都会感觉速度很快。而一般的网站如果服务器在网通,电信用户访问很慢,如果服务器在电信,网通用户访问又很慢。

通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的cache服务器内,通过DNS负载均衡的技术,判断用户来源就近访问cache服务器取得所需的内容,解决Internet网络拥塞状况,提高用户访问网站的响应速度,如同提供了多个分布在各地的加速器,以达到快速、可冗余的为多个网站加速的目的。

CDN服务最初用于确保快速可靠地分发静态内容,这些内容可以缓存,最适合在网速庞大的网络中存储和分发,该网络在几十多个国家的十几个网络中的覆盖CDN网络服务器。由于动态内容必须通过互联网来传输,因此要提供快速的网络体验。如今的CDN可谓是大文件、小文件、点播、直播、动静皆宜!

<img src="https://pic3.zhimg.com/50/v2-9b12ed731f01f8425c688bb13e0d913e_hd.jpg" data-rawwidth="640" data-rawheight="427" class="origin_image zh-lightbox-thumb" width="640" data-original="https://pic3.zhimg.com/v2-9b12ed731f01f8425c688bb13e0d913e_r.jpg">

主要特点:

1、本地Cache加速,提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性

2、镜像服务消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量。

3、远程加速 远程访问用户根据DNS负载均衡技术 智能自动选择Cache服务器,选择最快的Cache服务器,加快远程访问的速度

4、带宽优化 自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能。

5、集群抗攻击 广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种D.D.o.S攻击对网站的影响,同时保证较好的服务质量 。

关键技术:

<img src="https://pic4.zhimg.com/50/v2-eaf80abf6a52913375d2ade0dde79ed0_hd.jpg" data-rawwidth="640" data-rawheight="467" class="origin_image zh-lightbox-thumb" width="640" data-original="https://pic4.zhimg.com/v2-eaf80abf6a52913375d2ade0dde79ed0_r.jpg">
内容发布:它借助于建立索引、缓存、流分裂、组播(Multicast)等技术

内容路由:它是整体性的网络负载均衡技术,通过内容路由器中的重定向(DNS)机制,在多个远程POP上均衡用户的请求,以使用户请求得到最近内容源的响应;

内容交换:它根据内容的可用性、服务器的可用性以及用户的背景,在POP的缓存服务器上,利用应用层交换、流分裂、重定向(ICP、WCCP)等技术,智能地平衡负载流量;

性能管理:它通过内部和外部监控系统,获取网络部件的状况信息,测量内容发布的端到端性能(如包丢失、延时、平均带宽、启动时间、帧速率等),保证网络处于最佳的运行状态。

适用范围:

<img src="https://pic1.zhimg.com/50/v2-3cb264b4b37a79bdcd27afcbdf34b0e8_hd.jpg" data-rawwidth="640" data-rawheight="269" class="origin_image zh-lightbox-thumb" width="640" data-original="https://pic1.zhimg.com/v2-3cb264b4b37a79bdcd27afcbdf34b0e8_r.jpg">
一般来说以资讯、内容等为主的网站,具有一定访问体量的网站

例如资讯网站、政府机构网站、行业平台网站、商城等以动态内容为主的网站

例如论坛、博客、交友、SNS、网络游戏、搜索/查询、金融等。提供http下载的网站

例如软件开发商、内容服务提供商、网络游戏运行商、源码下载等有大量流媒体点播应用的网站

例如:拥有视频点播平台的电信运营商、内容服务提供商、体育频道、宽频频道、在线教育、视频博客等

Q & A
1.CDN加速是对网站所在服务器加速,还是对其域名加速?

CDN是只对网站的某一个具体的域名加速。如果同一个网站有多个域名,则访客访问加入CDN的域名获得加速效果,访问未加入CDN的域名,或者直接访问IP地址,则无法获得CDN效果。

2.CDN和镜像站点比较有何优势?

CDN对网站的访客完全透明,不需要访客手动选择要访问的镜像站点,保证了网站对访客的友好性。  
CDN对每个节点都有可用性检查,不合格的节点会第一时间剔出,从而保证了极高的可用率,而镜像站点无法实现这一点。  
CDN部署简单,对原站基本不做任何改动即可生效。

3.CDN和双线机房相比有何优势?

常见的双线机房只能解决网通和电信互相访问慢的问题,其它ISP(譬如教育网,移动网,铁通)互通的问题还是没得到解决。  
而CDN是访问者就近取数据,而CDN的节点遍布各ISP,从而保证了网站到任意ISP的访问速度。另外CDN因为其流量分流到各节点的原理,天然获得抵抗网络攻击的能力。

4.CDN使用后,原来的网站是否需要做修改,做什么修改?

一般而言,网站无需任何修改即可使用CDN获得加速效果。只是对需要判断访客IP程序,才需要做少量修改。

5.为什么我的网站更新后,通过CDN后看到网页还是旧网页,如何解决?

由于CDN采用各节点缓存的机制,网站的静态网页和图片修改后,如果CDN缓存没有做相应更新,则看到的还是旧的网页。
为了解决这个问题,CDN管理面板中提供了URL推送服务,来通知CDN各节点刷新自己的缓存。  
在URL推送地址栏中,输入具体的网址或者图片地址,则各节点中的缓存内容即被统一删除,并且当即生效。  
如果需要推送的网址和图片太多,可以选择目录推送,输入 http://www.kkk.com/news 即可以对网站下news目录下所有网页和图片进行了刷新。

6.能不能让CDN不缓存某些即时性要求很高的网页和图片?

只需要使用动态页面,asp,php,jsp等动态技术做成的页面不被CDN缓存,无需每次都要刷新。或者采用一个网站两个域名,一个启用CDN,另外一个域名不用CDN,对即时性要求高的页面和图片放在不用CDN的域名下。

7.网站新增了不少网页和图片,这些需要使用URL推送吗?

后来增加的网页和图片,不需要使用URL推送,因为它们本来就不存在缓存中。

8.网站用CDN后,有些地区反映无法访问了,怎么办?

CDN启用后,访客不能访问网站有很多种可能,可能是CDN的问题,也可能是源站点出现故障或者源站点被关闭,还可能是访客自己所在的网络出现问题,甚至我们实际故障排除中,还出现过客户自己计算机中毒,导致无法访问网站。  
客户报告故障时,可随时联系我们24小时技术部进行处理。

9.哪些情况不适用于CDN?

<img src="https://pic1.zhimg.com/50/v2-3cb264b4b37a79bdcd27afcbdf34b0e8_hd.jpg" data-rawwidth="640" data-rawheight="269" class="origin_image zh-lightbox-thumb" width="640" data-original="https://pic1.zhimg.com/v2-3cb264b4b37a79bdcd27afcbdf34b0e8_r.jpg">
备注:此类极端状况不建议您使用CDN服务

总结:小公司/创业团队没有实力去搭建这种CDN服务,可以去阿里云或者网易云购买服务。保证应用的快速稳定。

以上内容多数摘抄自网络,防止以后丢失,遂将内容复制到本文。

作者:安迪爸爸
来源:CSDN
原文:https://blog.csdn.net/wzmde007/article/details/79498045
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyCharm是一款功能强大的Python集成开发环境(IDE它提供了许多有用的功能来帮助开发人员提高效率。其中之一就是CDN(Content Delivery Network 内容分发网络)支持。 CDN是一种通过将内容分发到全球各地的服务器来提供高速、可靠的内容传输的技术。在PyCharm中,你可以使用CDN来加速你的项目中的依赖库的下载和更新。 要在PyCharm中使用CDN,你可以按照以下步骤操作: 1. 打开PyCharm并打开你的项目。 2. 在项目窗口中,找到并打开你的项目的"requirements.txt"文件(如果没有,请创建一个)。 3. 在"requirements.txt"文件中,列出你的项目所需的依赖库,每个库一行。 4. 在每个依赖库的名称后面,使用"=="符号指定所需的版本号。例如:`requests==2.25.1` 5. 保存"requirements.txt"文件。 6. 在PyCharm的顶部菜单栏中,选择"File" -> "Settings"(或者使用快捷键"Ctrl + Alt + S")打开设置窗口。 7. 在设置窗口中,选择"Project: [你的项目名称]" -> "Python Interpreter"。 8. 在Python解释器页面的右上角,点击"+"按钮添加一个新的解释器。 9. 在弹出的对话框中,选择"Existing environment",然后点击"..."按钮选择你的Python解释器的路径。 10. 在解释器设置页面的左侧,选择"Package"选项卡。 11. 在"Package"选项卡中,点击"Add"按钮。 12. 在弹出的对话框中,选择"CDN Package"。 13. 在"Package name"字段中,输入你要添加的依赖库的名称。例如:`requests` 14. 在"Version"字段中,选择你要使用的版本号。如果你不确定,可以选择"Latest"来使用最新版本。 15. 点击"Install Package"按钮来安装依赖库。 16. 安装完成后,点击"OK"按钮关闭设置窗口。 现在,你的项目将使用CDN来下载和更新依赖库。每当你在项目中添加或更新依赖库时,PyCharm都会自动从CDN下载所需的文件,以提供更快的下载速度和更可靠的连接。 请注意,CDN支持可能因地区而异,某些依赖库可能无法通过CDN下载。在这种情况下,PyCharm将会使用其他途径来下载所需的文件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值