您的位置:首页 > 其它

负载均衡集群HAProxy基础篇

2016-06-17 11:26 260 查看

负载均衡集群HAProxy基础篇

一、 HAPorxy简介

HAProxy是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,HAProxy是完全免费的、借助HAProxy可以快速并且可靠的提供基于TCP和HTTP应用的代理解决方案。

二、 HAPorxy优点

免费开源、可靠性和稳定性非常好。
HAProxy可以处理数据可达10Gbps-New benchmark of HAProxy at 10 Gbps using Myricom's 10GbE NICs (Myri-10G PCI-Express),这个数值作为软件级负载均衡器是相当惊人的;
HAProxy支持虚拟主机。
HAProxy的支持Session的保持,Cookie的引导;同时支持通过获取指定的url来检测后端服务器的状态。
HAProxy支持TCP协议的负载均衡转发,可以对MySQL读进行负载均衡,对后端的MySQL节点进行检测和负载均衡。
HAProxy负载均衡策略非常多,HAProxy的负载均衡算法现在具体有如下8种:
ro roundrobin,表示简单的轮询static-rr,表示根据权重leastconn,表示最少连接者先处理source,表示根据请求源IPri,表示根据请求的URIrl_param,表示根据请求的URl参数hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。

三、 理解四层和七层负载均衡

四层就是基于IP+端口的负载均衡;通过虚拟IP+端口接收请求,然后再分配到真实的服务器;四层交换机主要分析IP层及TCP/UDP层,实现四层流量负载均衡。例子:LVS,F5。七层就是基于URL等应用层信息的负载均衡;通过虚拟的URL或主机名接收请求,然后再分配到真实的服务器。七层交换机除了支持四层负载均衡以外,还有分析应用层的信息,如HTTP协议URI或Cookie信息。例子: haproxy,MySQL Proxy。

四、 区别四层和七层负载均衡

所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。以常见的TCP为例,负载均衡设备在接收到第一个来自客户端的SYN 请求时,即通过算法选择一个最佳的服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器。TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报文原来的源地址进行修改。所谓七层负载均衡,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。以常见的TCP为例,负载均衡设备如果要根据真正的应用层内容再选择服务器,只能先代理最终的服务器和客户端建立连接(三次握手)后,才可能接受到客户端发送的真正应用层内容的报文,然后再根据该报文中的特定字段,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。负载均衡设备在这种情况下,更类似于一个代理服务器。负载均衡和前端的客户端以及后端的服务器会分别建立TCP连接。 由此可以看出,七层负载均衡明显的对负载均衡设备的要求更高,处理七层的能力也必然会低于四层模式的部署方式。

五、 HAProxy与LVS的区别

LVS是基于Linux操作系统的软负载均衡,HAProxy是基于第三方应用的软负载均衡。
LVS工作在4层,HAProxy工作在4层和7层。
LVS使用ip负载均衡技术,HAProxy使用TCP和HTTP应用的负载均衡。
LVS处理性能高于HAProxy处理性能,LVS检测方式少于HAProxy检测方式。
本文出自 “随风飘扬” 博客,请务必保留此出处http://wjb10000.blog.51cto.com/9702295/1790223
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: