RabbitMQ——用HAProxy实现负载均衡

RabbitMQ负载均衡的必要性

        集群的配置已经搭好,代码成功跑通,成功做到了高可用,但是我们的程序连接节点并不会管哪个服务器在忙、哪个服务器空闲,完全看心情想连谁就连谁。而且代码中要把每个ip的节点都手动的写出来 ,既然是手动的就很有可能发现写错这种情况,同样WEB UI 通常也不知道打开哪个好,因为每个服务器都有一个 WEB UI,可能有人说,既然哪个都行,你随便打开一个就是了。但是如果这个服务器后面崩了呢。

基于以前问题,需要一个强大的负载均衡服务器来帮助我们完成这些事情。

选择使用 haproxy做负载均衡。

linux安装haproxy

yum search haproxy     或者     yum list | grep haproxy

yum install -y haproxy.x86_64     安装  

rpm -qi haproxy       查看版本

haproxy --help

vim /etc/haproxy/haproxy.cfg  配置文件

haproxy -f /etc/haproxy/haproxy.cfg   指定配置文件

service haproxy start

service haproxy status

HAProxy控制台   http://4.14.21.19:7100/stats

 

在RabbitMQ镜像集群已装好的前提下,

HAProxy配置文件新添部分备份如下:

#haproxy monitor
listen monitor
        bind 0.0.0.0:7100
        mode http
        option httplog
        stats enable
        maxconn 10
        stats uri /stats
        stats refresh 5s
        stats   realm haproxy  #认证时的realm,作为提示用的
        stats   auth admin:Fire001  #认证用户名和密码
        stats   hide-version  #隐藏HAProxy版本号
        stats   admin if TRUE  #管理界面只有认证通过后才能在ui上进行管理



#rabbitmq cluster
listen rabbitmq_cluster
        bind 0.0.0.0:7107
        #配置TCP模式
        mode tcp
        #简单的轮询
        balance roundrobin
        #RabbitMQ集群节点配置
        server rabbitmq_node1 172.31.140.161:7101 check inter 5000 rise 2 fall 3 weight 1
        server rabbitmq_node2 172.31.140.161:7103 check inter 5000 rise 2 fall 3 weight 1
        server rabbitmq_node3 172.31.140.161:7103 check inter 5000 rise 2 fall 3 weight 1

#rabbitmq console
listen rabbitm1_console
   bind 0.0.0.0:7108
   mode http
   balance roundrobin
   server rabbitmq_console1 172.31.140.161:7102
   server rabbitmq_console2 172.31.140.161:7104
   server rabbitmq_console3 172.31.140.161:7106
原文地址:https://www.cnblogs.com/xingchong/p/14738588.html