均衡负载--浅析
来源:互联网 发布:成年男士身体数据 编辑:程序博客网 时间:2024/06/07 03:10
一、 均衡负载(LoadBalance)
就是将工作任务平均分摊到多个操作单元上执行,可避免由于模块出现单点失效,而造成的任务停止。
二、 通常有三种均衡负载架构
1. 链路负载均衡;
2. 集群负载均衡;
3. 操作系统负载均衡。
三、下面分别介绍这三种负载均衡
1. 链路负载均衡
比如,通过DNS解析,将域名解析成IP,然后用户根据这个IP来访问不同的目标服务器,如图:
用户最终访问哪个Web Server是由DNS Server来控制的,如上图中是由Global DNS Server来动态解析域名服务。
优点:用户直接访问目标服务器,访问速度快;
缺点:由于DNS解析数据在用户本地和Local DNS Server都有缓存,一旦某台WebServer(目标服务器)挂掉,Global DNS Server很难及时更新用户的域名解析结构,导致用户无法访问这个域名。(也就是说,用户已经在本地或Local DNS Server已经缓存了这个挂掉的目标服务器,导致用户直接按照缓存数据去访问这个目标服务器失败。)
2. 集群负载均衡
分为硬件负载均衡和软件负载均衡
1) 硬件负载均衡
使用一台专门的硬件设备来转发请求,如图所示:
为了安全一般需要两台设备:一主一备
优点:性能非常好;
缺点:1、非常规,一般公司用户起;2、访问量陡然增大超出服务器极限时,不能动态扩容。
2)软件均衡负载(普遍使用这种)
优点:成本低,一般的PC机就可以。
缺点:一般一次请求要经过多次代理服务器,会增加网络延时。
架构图:
上面的两台是LVS ,使用四层负载均衡,在网络层利用IP地址进行地址转发。下面的三台使用HAProxy进行七层负载,即,可以根据访问用户的HTTP请求头来进行负载均衡,如可以根据不同的URL来将请求转发到特定机器或者根据用户的Cookie信息来制定访问的机器。
3.操作系统均衡负载
利用操作系统级别的软中断或者硬件中断来达到负载均衡,如可以实现多队列网卡来实现。
总结:以上三种负载均衡不仅在CDN(详见《CDN工作机制--浅析》)的集群中使用,而且在Web服务或者分布式数据集群中同样可以使用。
二、CDN动态加速
1. CDN的动态加速技术也是现在比较流行的一种优化技术。
2. 原理:在CDN的解析中 ,通过动态的链路探测来寻找回源最好的一条路径,然后通过DNS的调度将所有的请求调度到选定的这条路径上回源,从而加速用户的访问效率,如图:
3. 由于CDN节点是遍布全国的,所以用户接入一个CDN节点后,可以选择一条从CDN节点到源站链路最好的路径让用户走。一个简单的原则就是在每个CDN节点上从源站下载一个大小一定的文件,看哪个链路的总耗时最短,这样就可以构成一个链路链表,然后绑定到DNS解析上,更新到CDN的Local DNS。当然,这个选择原则只是一个例子,实际开发中,可以综合如网络成本、安全等因素。
参考 许令波的《深入分析java web技术内幕》
- 均衡负载--浅析
- linux内核SMP负载均衡浅析
- linux内核SMP负载均衡浅析
- linux内核SMP负载均衡浅析
- linux内核SMP负载均衡浅析
- linux内核SMP负载均衡浅析
- linux内核SMP负载均衡浅析
- linux内核SMP负载均衡浅析
- linux内核SMP负载均衡浅析
- linux内核SMP负载均衡浅析
- linux内核SMP负载均衡浅析
- linux内核SMP负载均衡浅析
- Linux内核SMP负载均衡浅析
- linux内核SMP负载均衡浅析
- 浅析Web2.0网站如何实现负载均衡?
- 海量图片的分布式存储及负载均衡研究(浅析)
- IPVS负载均衡(六)浅析ip_vs_core.c
- 负载均衡
- Grade for Android(从 Gradle 和 AS 开始)
- 项目开发中的个人总结
- 安卓自定义View-Canvas之画布操作
- 命令模式
- Java:对象的强、软、弱和虚引用
- 均衡负载--浅析
- 负载均衡软件HAProxy案例一 带cookie前缀和高可用的HTTP负载均衡
- ubuntu下Android studio开发环境的搭建
- Blob,Layer and Net
- Android根据日期自动修改Icon
- java获取2个日期之间差的整天数
- 分享张开旭微博对于分词的理解
- Linux源码安装MySQL5.5.11
- 微信支付java后台点滴学习----遇到的问题解决