5-3 HA代理MQ

2020-07-18  本文已影响0人  Finlay_Li

HaProxy介绍

HaProxy是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,HaProxy特别适用于负载特大的web站点,完全可以支持数以万计的并发连接

构建

创建两个容器分别为:rabbitmq-haproxy8100、rabbitmq-haproxy8101

  1. 创建容器rabbitmq-haproxy8100挂载配置文件haproxy.cfg的目录

/data/haproxy/8100

  1. 创建容器rabbitmq-haproxy8101挂载配置文件haproxy.cfg的目录

/data/haproxy/8101

复制8100的haproxy.cfg把5677、8100、8000端口改成5678、8101、8001即可

  1. 配置文件
#logging options
global
    log 127.0.0.1 local0 info
    maxconn 5120
    chroot /usr/local/etc/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
    timeout connect 5s
    #客户端空闲超时时间为 60秒 则HA 发起重连机制
    timeout client 60s
    #服务器端链接超时时间为 15秒 则HA 发起重连机制
    timeout server 15s
#front-end IP for consumers and producters

listen rabbitmq_cluster
    bind 0.0.0.0:5677
    #配置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
    #解决ckient连接时,mq2秒无活动被haproxy删除的情况( 这里代理用的是tcp ,默认tcp 2小时活动一次,大于它即可 )
        timeout client  3h
        timeout server  3h
    #简单的轮询
    balance roundrobin
    #rabbitmq集群节点配置 
    #inter 每隔五秒对mq集群做健康检查, 2次正确证明服务器可用,2次失败证明服务器不可用
    server master5672 192.168.5.155:5672 check inter 5000 rise 2 fall 2
    server slave5673 192.168.5.155:5673 check inter 5000 rise 2 fall 2
    server slave5674 192.168.5.155:5674 check inter 5000 rise 2 fall 2
#配置haproxy web监控,查看统计信息
listen stats
    bind 0.0.0.0:8100
    mode http
    option httplog
    stats enable
    #设置haproxy监控地址为http://localhost:8100/rabbitmq-stats
    stats uri /rabbitmq-stats
    stats refresh 5s
    #设置访问账户和密码
    stats auth admin:qwg-haproxy
listen rabbitmq_admin #监听8000端口转发到rabbitmq的客户端
    bind 0.0.0.0:8000
    server master5672 192.168.5.155:15672 check inter 5000 rise 2 fall 2
    server slave5673 192.168.5.155:15673 check inter 5000 rise 2 fall 2
    server slave5674 192.168.5.155:15674 check inter 5000 rise 2 fall 2



分别创建并且运行容器

docker run -it --name rabbitmq-haproxy8100 -p 5677:5677 -p 8100:8100 -p 8000:8000  --net=rabbitmqnet -v /data/haproxy/8100/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro haproxy:latest

docker run -it --name rabbitmq-haproxy8101 -p 5678:5678 -p 8101:8101 -p 8001:8001  --net=rabbitmqnet -v /data/haproxy/8101/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro haproxy:latest

容器启动成功后, 访问HaProxy界面

http://192.168.5.155:8100/rabbitmq-stats
http://192.168.5.155:8101/rabbitmq-stats

image.png

可以看到RabbitMQ的3个节点为绿色,表示服务正常

image.png

访问以下地址也可以跳转到RabbitMQ客户端(代理)

http://192.168.5.155:8000
http://192.168.5.155:8001

端口说明

-p 5678:5678 Haproxy的端口
-p 8101:8101 Haproxy管理界面端口
-p 8001:8001 Haproxy代理Mq端口

上一篇 下一篇

猜你喜欢

热点阅读