HAProxy 实现镜像队列的负载均衡
-
HAProxy 简介
HAProxy是一款提供高可用性、负载均衡以及基于TCP和HTTP应用的代理软件,HAProxy是完全免费的、借助HAProxy可以快速并且可靠的提供基于TCP和HTTP应用的代理解决方案。
HAProxy适用于那些负载较大的web站点,这些站点通常又需要会话保持或七层处理。
HAProxy可以支持数以万计的并发连接,并且HAProxy的运行模式使得它可以很简单安全的整合进架构中,同时可以保护web服务器不被暴露到网络上。
-
HAProxy 的规划(搭建2台是为后面做HAProxy高可用做准备)
ip 用途 主机名 192.168.13.104 HAProxy server4 192.168.13.105 -
集群是用docker安装的,具体可以看这篇博客:https://www.cnblogs.com/dalianpai/p/13197018.html
集群:
4. HAProxy 的安装
#下载依赖包 - 如果已安装可以跳过
yum install gcc vim wget
# 下载haproxy
wget http://www.haproxy.org/download/1.6/src/haproxy-1.6.5.tar.gz
#解压
tar -zxvf haproxy-1.6.5.tar.gz -C /usr/local
#进入目录、进行编译、安装
cd /usr/local/haproxy-1.6.5
make TARGET=linux31 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy
#用来存放配置文件
mkdir /etc/haproxy
#赋权
groupadd -r -g 149 haproxy
useradd -g haproxy -r -s /sbin/nologin -u 149 haproxy
#创建haproxy配置文件
touch /etc/haproxy/haproxy.cfg
配置文件如下:
#logging options
global
log 127.0.0.1 local0 info
maxconn 5120
# ha的安装地址
chroot /usr/local/haproxy
uid 99
gid 99
daemon
quiet
nbproc 20
pidfile /var/run/haproxy.pid
defaults
log global
#使用4层代理模式,”mode http”为7层代理模式
mode tcp
#if you set mode to tcp,then you nust change tcplog into httplog
option tcplog
option dontlognull
retries 3
option redispatch
maxconn 2000
contimeout 5s
##客户端空闲超时时间为 30秒 则HA 发起重连机制
clitimeout 30s
##服务器端链接超时时间为 15秒 则HA 发起重连机制
srvtimeout 15s
#front-end IP for consumers and producters
listen rabbitmq_cluster
bind 192.168.1.121:5672
#配置TCP模式
mode tcp
#balance url_param userid
#balance url_param session_id check_post 64
#balance hdr(User-Agent)
#balance hdr(host)
#balance hdr(Host) use_domain_only
#balance rdp-cookie
#balance leastconn
#balance source //ip
#简单的轮询
balance roundrobin
#rabbitmq集群节点配置 #inter 每隔五秒对mq集群做健康检查, 2次正确证明服务器可用,2次失败证明服务器不可用,并且配置主备机制
server server1 192.168.1.119:5673 check inter 5000 rise 2 fall 2
server server2 192.168.1.119:5674 check inter 5000 rise 2 fall 2
server server3 192.168.1.119:5675 check inter 5000 rise 2 fall 2
#配置haproxy web监控,查看统计信息
listen stats
bind 192.168.1.121:8100 # 注意此处的ip地址,我们配置了2台机器
mode http
option httplog
stats enable
#设置haproxy监控地址为http://192.168.1.121:8100/rabbitmq-stats
stats uri /rabbitmq-stats
stats refresh 5s
#logging options
global
log 127.0.0.1 local0 info
maxconn 5120
# ha的安装地址
chroot /usr/local/haproxy
uid 99
gid 99
daemon
quiet
nbproc 20
pidfile /var/run/haproxy.pid
defaults
log global
#使用4层代理模式,”mode http”为7层代理模式
mode tcp
#if you set mode to tcp,then you nust change tcplog into httplog
option tcplog
option dontlognull
retries 3
option redispatch
maxconn 2000
contimeout 5s
##客户端空闲超时时间为 30秒 则HA 发起重连机制
clitimeout 30s
##服务器端链接超时时间为 15秒 则HA 发起重连机制
srvtimeout 15s
#front-end IP for consumers and producters
listen rabbitmq_cluster
bind 192.168.1.118:5672
#配置TCP模式
mode tcp
#balance url_param userid
#balance url_param session_id check_post 64
#balance hdr(User-Agent)
#balance hdr(host)
#balance hdr(Host) use_domain_only
#balance rdp-cookie
#balance leastconn
#balance source //ip
#简单的轮询
balance roundrobin
#rabbitmq集群节点配置 #inter 每隔五秒对mq集群做健康检查, 2次正确证明服务器可用,2次失败证明服务器不可用,并且配置主备机制
server server1 192.168.1.119:5673 check inter 5000 rise 2 fall 2
server server2 192.168.1.119:5674 check inter 5000 rise 2 fall 2
server server3 192.168.1.119:5675 check inter 5000 rise 2 fall 2
#配置haproxy web监控,查看统计信息
listen stats
bind 192.168.1.118:8100 # 注意此处的ip地址,我们配置了2台机器
mode http
option httplog
stats enable
#设置haproxy监控地址为http://192.168.1.118:8100/rabbitmq-stats
stats uri /rabbitmq-stats
stats refresh 5s
结果图:
当断了一个节点如下: