初探 CDN
简介
CDN,全称 Content Delivery Network,根本的作用是将网站的内容发布到最接近用户的网络「边缘」,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。
它有别于镜像,它比镜像更智能,可以这样做一个比喻:CDN = 镜像(Mirror) + 缓存(cache) + 整体负载均衡(GSLB),因而,CDN 可以明显提高 Internet 中信息流动的效率。
目前 CDN 都以缓存网站中的静态数据为主,如 CSS、JS、图片和静态网页等数据。用户在从主站服务器请求到动态内容后再从 CDN 上下载这些静态数据,从而加速网页数据内容的下载速度,如淘宝有 90% 以上的数据都是由 CDN 来提供的。
过程
- 用户向浏览器提供要访问的域名;
- 浏览器调用域名解析库对域名进行解析,由于 CDN 对域名解析过程进行了调整,所以解析函数库得到的是该域名对应的 CNAME 记录(由于现在已经是使用了 CDN 服务,CNAME 为 CDN 服务商域名),为了得到实际 IP 地址,浏览器需要再次对获得的 CNAME 域名进行解析以得到实际的 IP 地址;在此过程中,使用的全局负载均衡 DNS 解析,如根据地理位置信息解析对应的 IP 地址,使得用户能就近访问。(CDN 服务来提供最近的机器)
- 此次解析得到 CDN 缓存服务器的 IP 地址,浏览器在得到实际的 IP 地址以后,向缓存服务器发出访问请求;
- 缓存服务器根据浏览器提供的要访问的域名,通过 Cache 内部专用 DNS 解析得到此域名的实际 IP 地址,再由缓存服务器向此实际 IP 地址提交访问请求;
- 缓存服务器从实际 IP 地址得得到内容以后,一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程;
- 客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。
关键技术
- 缓存算法:决定命中率、源服务器压力、POP 节点存储能力
- 分发能力:取决于 IDC 能力和 IDC 策略性分布
- 负载均衡(智能调度):决定最佳路由、响应时间、可用性、服务质量
- 支持协议:如静动态加速(图片加速、https 带证书加速)、下载加速、流媒体加速、企业应用加速、手机应用加速
不足
实时性不太好是 CDN 的致命缺陷。随着对 CDN 需求的逐渐升温,这一缺陷将得到改进,使来自于远程服务器的网络内容网页与复本服务器或缓存器中的网页保持同步。 解决方法是在网络内容发生变化时将新的网络内容从服务器端直接传送到缓存器,或者当对网络内容的访问增加时将数据源服务器的网络内容尽可能实时地复制到缓存服务器。
欢迎转载,转载请注明出处!
独立域名博客:flywill.com
欢迎关注公众微信号:Java小镇V
分享自己的学习 & 学习资料 & 生活
想要交流的朋友也可以加微信号备注入群:EscUpDn