Java Web 深入分析(3) CDN
CDN (Content Delivery NetWork) 内容分发网络,它是构筑在现有互联网基础上的一种先进的流量分配网络。区别于镜像,相当于是 CDN = 镜像(mirror) + 缓存(Cache)+整体负载均衡(GSLB)。目前CDN 都已缓存网站中的静态数据为主,如CSS,JS,图片和静态页面等数据,用户从主服务器上请求到动态页面之后,再从CDN上下载这些静态数据,从而加速访问。 CDN目标: 可扩展性(Scalebility) 应对新增大量的数据,用户和事务的扩展性。低成本提供高质量的内容分发。 安全性(Security) 强调安全问题。 可靠性。容灾和负载均衡咯。 CDN架构: 如图用户去访问一个假设是css文件,先是想localserver发起请求,然后迭代解析回到这个域名的注册服务器去解析,然后通过cname解析到CDN全局负载均衡服务器,然后用户直接去这个CDN节点访问这个css文件咯,如果不存在就去源站请求。 3种负载均衡 链路负载均衡:dns服务器进行负载均衡,在解析中完成。 集群负载均衡:分为硬件和软件 - 硬件:非常昂贵的硬件设备,如F5 开始一旦坏掉就GG - 软件: 通过代理服务器,可能会增加网络延时。LVS在IP层进行地址转发,HAProxy根据HTTP请求头进行转发。 操作系统负载均衡:利用操作系统的软中断和硬中断,来达到负载均衡。