随着互联网业务的迅猛发展,大型电商平台和门户网站对系统的可用性和可靠性要求越来越高。高可用集群和负载均衡集群成为了一种热门的系统架构解决方案。
介绍
HAProxy是一款由法国人Willy Tarreau使用C语言编写的自由及开放源代码软件,它提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。
HAProxy的特点
- 可靠性和稳定性非常好,可与硬件级的负载均衡设备相媲美。
- 支持多达8种负载均衡算法,同时也支持会话保持。
- 支持虚拟机主机功能,实现web负载均衡更加灵活。
- 拥有强大的ACL支持,用于访问控制。
- 支持连接拒绝、全透明代理等独特的功能。
负载均衡算法
- roundrobin:简单的轮询。
- static-rr:基于权重的轮询。
- leastconn:最少连接者先处理。
- source:根据请求源IP进行负载均衡。
- 其他算法如ri、rl_param、hdr(name)、rdp-cookie(name)等。
架构与工作模式
与LVS的比较
LVS(Linux Virtual Server)即Linux虚拟服务器,是从Linux 2.4内核以后内置了LVS的各个功能模块的开源负载均衡项目。两者都是软件负载均衡产品,但LVS是基于Linux操作系统实现的一种软负载均衡,而HAProxy是基于第三应用实现的软负载均衡。
LVS基于四层的IP负载均衡技术,主要适用于对网络吞吐和连接负载能力要求较高的场景。而HAProxy则基于四层和七层技术,提供TCP和HTTP应用的负载均衡综合解决方案,在状态监测方面功能强大。大型网站架构和对性能有严格要求的时候可以使用LVS或硬件F5;而对于页面分离请求有明确规定且性能要求不那么严格的场景,可以使用HAProxy。