-- HAPROXY 终数据库高可用还是离不开你
HAPROXY 大部分人都知道是做什么用的, 无论是web节点,还是大型的数据库节点中的高可用以及均衡负载都离不开HAPROXY. HAPROXY 主要工作的范围活跃在 "高可用" , 以及"均衡负载". 他主要提供 4 层协议与7层协议的代理. 基本上他已经成为标准的开源均衡负载器的代名词.目前稳定的和新的版本是2.4. 其主要的目的是以事件驱动非阻塞引擎,他结合了多线程优先级调度程序, 主要的目标是以尽可能少的操作来完成更快的数据转发工作,高性能的特点是尽可能的通过稳定的长连接使用固定的CPU,来优化CPU缓存使用的效率. 这样的设计让HAPROXY本身在处理事务的时候,使用比较低的CPU资源来处理更多的连接.
主要的功能:
1 监听服务的IP地址和端口,提供连接的转接避免直接连接可能造成的攻击问题,可以通过自身的透明连接来阻挡非访问本地的连接需求.
2 充当连接缓冲池的作用,对于短连接的连接需求进行复用的方式,减少连接打开和关闭的消耗.
3 提供SSL 安全连接模式和监控服务和流量的功能
4 提供高可用的功能, 在对连接转发当中,只对有效的服务端进行转接,无法提供服务的节点会从服务槽中被剔除
5 对于均衡复杂提供多种的方法, 对于短连接采用轮训的方式,将任务发送给每一个节点, 对于长连接可以选择近少使用的节点.
实际上大部分使用HAPROXY的主要的需求来自于高可用服务和均衡负载.
对于 HAPROXY 建议的硬件部署需求
1 单独部署,将HAPROXY 作为一个(拟) 硬件的设备,存在于客户连接和应用系统之间(应用系统包含数据库系统)
2 在编译的基础上需要 epel-release , gcc systemd-devel 等依赖包
3 建议使用2.0以上的版本
安装建议编译安装,对于一些非标准的系统硬件可以更好的支持
yum install unzip gcc gcc-c++ python-devel libcurl-devel openssl openssl-devel python-setuptools.noarch libxml2-devel libxml2 glibc-static libstdc++-static lzip libffi-devel
make TARGET=linux-glibc PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy
(这里基于HAPROXY 大于 2.0 的版本, 相关 target 不在指定使用linux2628方式)
haproxy 的配置文件由两部分组成:全局设定和对代理的设定,共分为五段:global,defaults,frontend,backend,listen
相关文章