For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
我们在上文中给大家简单介绍了程序员在开发软件的时候会用到的一些缓存技术等内容,而本文我们就继续来学习一下,CDN缓存与反向代理缓存优缺点分析。
一、CDN缓存
CDN将数据缓存到离用户物理距离近的服务器,使得用户可以就近获取请求内容。CDN一般缓存静态资源文件(页面,脚本,图片,视频,文件等)。
国内网络异常复杂,跨运营商的网络访问会很慢。为了解决跨运营商或各地用户访问问题,可以在重要的城市,部署CDN应用。使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
1、CDN原理
CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
1)未部署CDN应用前的网络路径:
请求:本机网络(局域网)=>运营商网络=>应用服务器机房
响应:应用服务器机房=>运营商网络=>本机网络(局域网)
在不考虑复杂网络的情况下,从请求到响应需要经过3个节点,6个步骤完成一次用户访问操作。
2)部署CDN应用后网络路径:
请求:本机网络(局域网)=>运营商网络
响应:运营商网络=>本机网络(局域网)
在不考虑复杂网络的情况下,从请求到响应需要经过2个节点,2个步骤完成一次用户访问操作。与不部署CDN服务相比,减少了1个节点,4个步骤的访问。极大的提高了系统的响应速度。
2、CDN特点
优点
本地Cache加速:提升访问速度,尤其含有大量图片和静态页面站点;
实现跨运营商的网络加速:消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量;
远程加速:远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器,选择快的Cache服务器,加快远程访问的速度;
带宽优化:自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能。
集群抗攻击:广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种D.D.o.S攻击对网站的影响,同时保证较好的服务质量。
缺点
不适宜缓存动态资源
解决方案:主要缓存静态资源,动态资源建立多级缓存或准实时同步;
存在数据的一致性问题
1.解决方案(主要是在性能和数据一致性二者间寻找一个平衡)。
2.设置缓存失效时间(1个小时,过期后同步数据)。
3.针对资源设置版本号。
二、反向代理缓存
反向代理(ReverseProxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
1、反向代理缓存原理
反向代理位于应用服务器同一网络,处理所有对WEB服务器的请求。反向代理缓存的原理:
如果用户请求的页面在代理服务器上有缓存的话,代理服务器直接将缓存内容发送给用户。
如果没有缓存则先向WEB服务器发出请求,取回数据,本地缓存后再发送给用户。
这种方式通过降低向WEB服务器的请求数,从而降低了WEB服务器的负载。
反向代理缓存一般针对的是静态资源,而将动态资源请求转发到应用服务器处理。常用的缓存应用服务器有Varnish,Ngnix,Squid。
2、反向代理缓存比较
常用的代理缓存有Varnish,Squid,Ngnix,简单比较如下:
Varnish和Squid是专业的cache服务,Ngnix需要三方模块支持;
Varnish采用内存型缓存,避免了频繁在内存、磁盘中交换文件,性能比Squid高;
Varnish由于是内存cache,所以对小文件如css、js、小图片的支持很棒,后端的持久化缓存可以采用的是Squid或ATS;
Squid功能全而大,适合于各种静态的文件缓存,一般会在前端挂一个HAProxy或Ngnix做负载均衡跑多个实例;
Nginx采用三方模块ncache做的缓冲,性能基本达到Varnish,一般作为反向代理使用,可以实现简单的缓存。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。