03:rabbitmq-高可用性(haproxy)

一世执手 提交于 2019-11-30 15:48:25

RabbitMQ-高可用性(HA)

HAProxy 是一个免费的负载均衡软件,可以运行于大部分主流的 Linux 操作系统上。

HAProxy 提供了 L4(TCP) L7(HTTP) 两种负载均衡能力,具备丰富的功能。HAProxy 的社区非常活跃,版本更新快速。最关键的是,HAProxy 具备媲美商用负载均衡器的性能和稳定性。它当前不仅仅是免费负载均衡软件的首选,更几乎成为了唯一选择。

因为 RabbitMQ 本身不提供负载均衡,下面我们就搭建 HAProxy,用作 RabbitMQ 集群的负载均衡。

 

1: 安装haproxy node1上面

[root@node1 ~]# yum install haproxy -y

 

2: 配置haproxy

[root@node1 ~]# cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak

[root@node1 ~]# vim /etc/haproxy/haproxy.cfg

 

3:将下面的配置添加到/etc/haproxy/haproxy.cfg文件中:

global

    log     127.0.0.1  local0 info

    log     127.0.0.1  local1 notice

    daemon

    maxconn 4096

 

defaults

    log     global

    mode    tcp

    option  tcplog

    option  dontlognull

    retries 3

    option  abortonclose

    maxconn 4096

    timeout connect  5000ms

    timeout client  3000ms

    timeout server  3000ms

    balance roundrobin

 

listen private_monitoring

    bind    0.0.0.0:8100

    mode    http

    option  httplog

    stats   refresh  5s

    stats   uri  /stats

    stats   realm   Haproxy

    stats   auth  admin:admin

 

listen rabbitmq_admin

    bind    0.0.0.0:8102

    server  node1 node1:15672

    server  node2 node2:15672

 

listen rabbitmq_cluster

    bind    0.0.0.0:8101

    mode    tcp

    option  tcplog

    balance roundrobin

    timeout client  3h

    timeout server  3h

    server  node1  node1:5672  check  inter  5000  rise  2  fall  3

    server  node2  node2:5672  check  inter  5000  rise  2  fall  3

 

 3: 启动haproxy

 [root@node1 ~]# systemctl  start haproxy.service

加入开机自启:

 [root@node1 ~]# systemctl  enable  haproxy.service

 

4: HAProxy 配置了三个地址:

http://node1:8100/statsHAProxy 负载均衡信息地址,账号密码:admin/admin

http://node1:8101RabbitMQ Server Web 管理界面(基于负载均衡)。

http://node1:8102RabbitMQ Server 服务地址(基于负载均衡)。

通过访问http://192.168.6.111:8100/stats,查看 HAProxy 负载均衡信息:

 

 

 

 到此rabbitmq 高可用搭建到此结束。有时间后期会写一些关于zabbix监控rabbitmq的文章。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!