-- HAPROXY 终数据库高可用还是离不开你

2021-08-23 00:00:00 连接 节点 提供 负载 均衡

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

相关文章