共计 1842 个字符,预计需要花费 5 分钟才能阅读完成。
一、haproxy 简介
haproxy 是一个提供高可用性,负载均衡的应用代理,支持的协议有 TCP,HTTP,并且支持虚拟主机,特别适用于那些负载量大的 web 应用,这些应用通常需要会话保持或者七层处理,HAProxy 实现了一种事件驱动、单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户端 (User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个 CPU 时间片(Cycle) 做更多的工作。
haproxy 目前最新的版本是 1.4 系列的,提供了很多比较 1.3 的新的特性:
1. 支持客户端侧的长链接(client-side keep-alive)
2. 支持 TCP 加速(TCP speedups)
3. 支持响应池(response buffering)
4. 支持 RDP 协议
5. 支持基于源的粘性(source-based stickiness)
6. 有更好的统计数据接口(a much better stats interfaces)
7. 有更详细的健康状态检测机制(more verbose health checks)
8. 有基于流量的健康评估机制(traffic-based health)
9. 支持 HTTP 认证
10. 服务器管理命令行接口(server management from the CLI)
11. 基于 ACL 的持久性(ACL-based persistence)
支持的平台以及 OS
x86、x86_64、Alpha、SPARC、MIPS 及 PARISC 平台上的 Linux 2.4;
x86、x86_64、ARM (ixp425)及 PPC64 平台上的 Linux2.6;
UltraSPARC 2 和 3 上的 Sloaris 8/9;
Opteron 和 UltraSPARC 平台上的 Solaris 10;
x86 平台上的 FreeBSD 4.1-8;
i386, amd64, macppc, alpha, sparc64 和 VAX 平台上的 OpenBSD 3.1-current;
二、haproxy 的性能
1.haproxy 使用单进程,事件驱动模型降低了上下午切换的开销及内存的占用
2.O(1)事件查看器 (event checker) 允许其在高并发连接中对任何连接的任何事件实现即时探测
3. 单缓冲机制,不会复制任何数据,节约 CPU 时钟周期
4. 可以实现零复制转发,在 Linux kernel 3.5 以上还支持零复制启动
5.MRU 内存分配器在固定大小的内存池中可实现即时内存分配,这能够显著减少创建一个会话的时长
6. 采用树型存储
7. 大部分工作都在用户空间完成,如时间读取、缓冲聚合及文件描述符的启用和禁用等
三、配置 haproxy
1. 配置文件格式:global 配置段,用于设定全局配置参数,proxy 配置段,包括:defaults,listen,fronted,backend
2. 时间格式: 一些包含了值的参数表示时间,如超时时长。这些值一般以毫秒为单位,但也可以使用其它的时间单位后缀:
us: 微秒(microseconds),即 1 /1000000 秒;
ms: 毫秒(milliseconds),即 1 /1000 秒;
s: 秒(seconds);
m: 分钟(minutes);
h:小时(hours);
d: 天(days)
HAproxy 的详细介绍:请点这里
HAproxy 的下载地址:请点这里
推荐阅读:
Haproxy+Keepalived 搭建 Weblogic 高可用负载均衡集群 http://www.linuxidc.com/Linux/2013-09/89732.htm
Keepalived+HAProxy 配置高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/56748.htm
CentOS 6.3 下 Haproxy+Keepalived+Apache 配置笔记 http://www.linuxidc.com/Linux/2013-06/85598.htm
Haproxy + KeepAlived 实现 WEB 群集 on CentOS 6 http://www.linuxidc.com/Linux/2012-03/55672.htm
Haproxy+Keepalived 构建高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/55880.htm