CDN的使用场景和操做细节

  随着互联网的发展,各类网络应用也雨后春笋般的发展,应用越作越大,访问路径愈来愈长,用户的访问质量受到严重的影响,特别是用户和网站之间的链路被突发的大流量数据拥堵、异地访问急需加速,减小网络费用等因素,对于这些急需解决的问题,因而就有了内容发布网络(Content Delivery Network,简称CDN)。
  CDN是指一种经过互联网互相链接的电脑网络系统,利用最靠近用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其余文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。css

  CDN总承载量能够比单一骨干最大的带宽还要大。这使得内容分发网络能够承载的用户数量比起传统单一服务器多。也就是说,若把有100Gbps处理能力的服务器放在只有10Gbps带宽的数据中心,则亦只能发挥出10Gbps的承载量。但若是放到十个有10Gbps的地点,整个系统的承载量就能够到10*10Gbps。同时,将服务器放到不一样地点,能够减小互连的流量,进而下降带宽成本。html

CDN访问路径

  1. 首先访问本地的DNS,若是没有命中,继续递归或者迭代查找,直到命中拿到对应的IP地址。
  2. 拿到对应的IP地址以后服务器端发送请求到目的地址。注意这里返回的不直接是CDN服务器的IP地址,而是全局负载均衡系统的IP地址
  3. 全局负载均衡系统会根据客户端的 IP地址和请求的url和相应的区域负载均衡系统通讯
  4. 区域负载均衡系统拿着这两个东西获取距离客户端最近且有相应资源的CDN缓存服务器的地址,返回给全局负载均衡系统
  5. 全局负载均衡系统返回肯定的CDN缓存服务器的地址给客户端。
  6. 客户端请求缓存服务器上的文件

其中有一个比较重要的点,在过程1里:这个过程当中,有一个CNAME的过程,咱们访问CDN资源的地址通常是a.cloud.com或者相似的地址,是一个公司的访问CDN的专用地址。可是通常用的CDN的服务倒是第三方的,即其实资源在他们的地址上好比tencent.cdn.com。这时候就须要在CDN查询的时候,须要把咱们访问a.cloud.com的地址映射到tencent.cdn.com的地址上,而后拿着映射后的地址再去走一遍DNS解析,成功以后才获取到第三方提供的全局负载均衡系统的IP。再继续走后面的流程。算法

CDN的优点

咱们使用CDN的两个重要的缘由就是加速网站访问、减小宽带成本,其次,CDN还有不少做用:segmentfault

一、为了实现跨运营商、跨地域的全网覆盖
互联不互通、区域ISP地域局限、出口带宽受限制等种种因素都形成了网站的区域性没法访问。CDN加速能够覆盖全球的线路,经过和运营商合做,部署IDC资源,在全国骨干节点商,合理部署CDN边缘分发存储节点,充分利用带宽资源,平衡源站流量。阿里云在国内有500+节点,海外300+节点,覆盖主流国家和地区不是问题,能够确保CDN服务的稳定和快速。缓存

二、为了保障你的网站安全
CDN的负载均衡和分布式存储技术,能够增强网站的可靠性,至关无无形中给你的网站添加了一把保护伞,应对绝大部分的互联网攻击事件。防攻击系统也能避免网站遭到恶意攻击。安全

三、为了异地备援
当某个服务器发生意外故障时,系统将会调用其余临近的健康服务器节点进行服务,进而提供接近100%的可靠性,这就让你的网站能够作到永不宕机。服务器

四、为了节约成本投入
使用CDN加速能够实现网站的全国铺设,你根据不用考虑购买服务器与后续的托管运维,服务器之间镜像同步,也不用为了管理维护技术人员而烦恼,节省了人力、精力和财力。网络

五、为了让你更专一业务自己
CDN加速厂商通常都会提供一站式服务,业务不只限于CDN,还有配套的云存储、大数据服务、视频云服务等,并且通常会提供7x24运维监控支持,保证网络随时畅通,你能够放心使用。而且将更多的精力投入到发展自身的核心业务之上。并发

CDN使用场景

CDN是将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提升用户访问的响应速度和成功率。解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。今天为你们分享几个CDN的典型适用场景。负载均衡

一、网站站点/应用加速
站点或者应用中大量静态资源的加速分发,建议将站点内容进行动静分离,动态文件能够结合云服务器ECS,静态资源如各种型图片、html、css、js文件等,建议结合 对象存储OSS 存储海量静态资源,能够有效加速内容加载速度,轻松搞定网站图片、短视频等内容分发

二、视音频点播/大文件下载分发加速
支持各种文件的下载、分发,支持在线点播加速业务,如mp四、flv视频文件或者平均单个文件大小在20M以上,主要的业务场景是视音频点播、大文件下载(如安装包下载)等,建议搭配对象存储OSS使用,可提高回源速度,节约近2/3回源带宽成本。

三、视频直播加速
阿里云一站式 视频直播服务 服务已正式上线发布!基于领先的内容接入与分发网络和大规模分布式实时转码技术打造的音视频直播平台,提供便捷接入、高清流畅、低延迟、高并发的音视频直播服务。支持多直播场景,全景数据统计,丰富角度分析;直播功能丰富,录制回放、实时封面、实时转码、连麦混流。

四、移动应用加速
移动APP更新文件(apk文件)分发,移动APP内图片、页面、短视频、UGC等内容的优化加速分发。提供httpDNS服务,避免DNS劫持并得到实时精确的DNS解析结果,有效缩短用户访问时间,提高用户体验。

CDN缓存策略

这对不一样文件类型合理配置缓存策略能有效的增长CDN回源效率,大幅缩减宽带成本

一、配制合理的CDN缓存规则
说明:让当地或就近的 CDN 节点上的缓存内容,直接提供给用户访问。多个客户访问相同资源也无需回源站获取内容,以此减小回源带宽。
优势:缓存住的内容可直接由 CDN 提供资源的访问。
缺点:根据 CDN 缓存算法 "最近最少使用" 的原则,将最近访问内容频率最低的会被清理出 CDN 缓冲中,致使冷资源还会从新回源站获取。
例如: jpg|bmp|gif 图片类型缓存 7 天,mp4|flv|ts 视频类型缓存 30 天
须要注意:当CDN主动更新文件时可能会形成服务器压力上升,由于厂商的服务器会有不少,同时拉取更新资源时,请求量会很大。若是刚好处于业务高峰期须要和CDN厂家协商更改拉取时间。

二、去问号回源
说明:只缓存 URL 中的问号 ? 前路径中的地址资源,而再也不缓存整条 URL 地址资源。
优势:只缓存住主要的资源内容,忽略掉问号后的常常变化的参数,有利于提升缓存命中率,减小回源带宽。
缺点:问号后若是有不一样的内容版本号来区分资源,去问号缓存可能会影响实际访问效果,从而致使访问到旧资源。
例如: http://www.youku.com/test.mp4... , 配制去问号缓存 http://www.youku.com/test.mp4 作到只缓存这个URL地址资源。

三、开启 CDN 父层
说明:CDN 父层是指相对于边缘节点的上层再加了一个共享存储池,用来将多个 CDN 边缘节点的请求汇聚到父层,由父层再回源站获取资源。
优势:由父层统一回源站,能够起到收敛多个 CDN 边缘节点的请求。作到合并请求,减小回源带宽。
缺点:父层的部署地区并非离客户最近的机房线路,由父层回源链路过长可能会被线路抖动产生回源失败。父层故障可能会致使多个 CDN 边缘节点没法获取到回源信息,影响面也较大。

四、开启 CDN 分段(分片)回源(缓存)
说明:CDN 分片回源是指将一份文件拆分红若干个小文件回源。
优势:经过识别不一样类型的文件大小,来调整分片的大小。将客户第一次请求,由分片服务自动将资源的请求拆分红若干个分片,最终将分片缓存在边缘或父层中。
缺点:分片服务在第一次不管客户请求过程当中是否断开,都会将请求进行分片回源。产生较多的请求次数,增长源站的HTTP请求链接数。
例如:以4M为分片单位,仅对点播和下载文件启用分片功能。

五、多个加速域名共享CDN缓存
说明:多个加速域名使用同一个源站,多个加速域名默认都会回源获取资源。
优势:配制了共享CDN缓存策略,多个加速域名只会回源一次,减小回源带宽。
缺点:多个加速域名的HOST会被合并成一个主要回源域名的HOST,致使记录回源域名不够清晰。

六、HTTP 和 HTTPS 共享CDN缓存
说明:HTTP 和 HTTPS 的 URL,默认是分别回源获取对应的资源。
优势:配制 HTTP 和 HTTPS 共享缓存策略,能够减小回源次数及带宽。
缺点: HTTP 的回源获取错误文件致使 HTTPS 响应错误

七、限制回源带宽。
说明:针对源站带宽有必定的限额,若是达到带宽上限会引发没法响应和请求到源站任何资源。
优势:限制回源带宽设置阀值,能够减小回源量突增致使没法访问的异常产生
缺点:会致使回源带宽突增后,致使超过回源带宽的请求失败

八、用第三方云存储(或内容注入)
说明:将源站迁移至第三方云存储,或CDN缓存节点做为临时存储站。
优势:一次性或者临时性将源站资源上传和同步到第三方存储机构,以减小回源带宽。
缺点:使用第三方云存储会产生使用成本,使用CDN缓存注入节点,将会占用上传带宽。

九、CDN 预取(预热)
说明:将资源提早一次性推送到CDN的边缘或者父层缓存节点。
优势:只占用一次上传带宽,而推送到CDN边缘或父层的内容可直接被用户访问。
缺点:须要提早得到推送资源,而且会占用上传带宽,业务繁忙时预热会致使上传带宽紧张。



欢迎订阅「K叔区块链」 - 专一于区块链技术学习

博客地址: http://www.jouypub.com
简书主页: https://www.jianshu.com/u/756c9c8ae984
segmentfault主页: https://segmentfault.com/blog/jouypub
腾讯云主页: https://cloud.tencent.com/developer/column/72548
相关文章
相关标签/搜索