虽然很早听过CDN,但对其原理处于模糊的状态。如今国内访问量较高的网站、直播、视频平台,均使用CDN网络加速技术,小编所在项目有使用CDN技术,谨以此篇学习共勉。
【二、CDN】
1、CDN简介
CDN的全称是ContentDelivery Network,即内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
2、CND基本原理
CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
3、基本思路
基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。
目的:解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度和成功率。CDN的意图就是尽可能的减少资源在转发、传输、链路抖动等情况下顺利保障信息的连贯性。
4、服务模式
CDN是一种新型网络构建方式,它是为能在传统的IP网发布宽带丰富媒体而特别优化的网络覆盖层;而从广义的角度,CDN代表了一种基于质量与秩序的网络服务模式。
CDN是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在。通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。
CDN服务最初用于确保快速可靠地分发静态内容,这些内容可以缓存,最适合在网速庞大的网络中存储和分发。如今国内访问量较高的网站、直播、视频平台,均使用CDN网络加速技术,虽然网站的访问巨大,但无论在什么地方访问都会感觉速度很快。而一般的网站如果服务器在网通,电信用户访问很慢,如果服务器在电信,网通用户访问又很慢。
5、主要特点
(1):本地Cache加速,提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性;
(2):镜像服务消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量;
(3):远程加速:远程访问用户根据DNS负载均衡技术,智能自动选择Cache服务器,选择最快的Cache服务器,加快远程访问的速度;
(4):带宽优化:自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能。
(5):集群抗攻击:广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵的影响,同时保证较好的服务质量。
【三、小编所在项目中CDN应用】
小编所在地图项目,涉及到离线资源下载(离线地图/导航包)。针对定位城市和全国概略,提供自动下载/更新功能。数据文件较大,需要保障数据的传输连贯性,应用到了CDN。
CDN调度服务:根据app升级包及离线包自动下载数量,给予客户端授权是否准许下载,避免峰值。
cdn请求控制
涉及离线地图包、离线导航包,根据用户情况(定位及全国均未下载/定位及全国其一已下载/定位与全国其一有重大更新),确定cdn请求码的个数,返回一个或两个码。
cdn请求授权内容
请求授权:获得许可,本次请求;未获得许可,下次请求
"permit":1,"permitList":["cnd码"],"permitType":1,进入下载状态;
"nextaskTimeInMillis":不为0,不进入下载状态;指定时间点,再次发送cdn请求;(后台自动更新,设置的定时任务,仅当地图运行在后台时,会被执行;前台自动下载/更新,设置的定时任务,仅当地图运行在前台时,会被执行;)
cdn回收:自动下载/更新离线资源后,会回收授权码,根据下载情况,分配后面用户的自动下载授权;
【四、参考】
https://www.zhihu.com/question/36514327?rf=37353035
https://zhuanlan.zhihu.com/p/32956597
https://zhuanlan.zhihu.com/p/28940451
https://orpical.com/category/search-engine-optimization-seo/