本文主要讲解如何对RabbitMQ集群中的节点做负载均衡:
在本章开始之前,我们虽然前面已经创建了集群,但是我们在之前连接集群的方式,都是直连集群中的某一个几点,这样被直连的几点将会承受很大的压力,剩余的节点则比较浪费,所谓的负载均衡就是可以将我们的请求按照一定规则打散到集群中的各个节点,这样我们才可能尽可能大的发挥出系统的性能,提高系统的吞吐量。
如果要实现一个完善的负载均衡还是比较困难,主要要实现以下功能:
如果实现将请求打散到各个节点,负载均衡器需要遵循一定的规则,规则主要有以下几种:
准备一份HAProxy的配置文件
global maxconn 4096 #默认最大连接数 log 127.0.0.1 local0 #[err warning info debug] chroot /usr/local/sbin #chroot运行的路径 daemon #以后台形式运行haproxy pidfile /var/run/haproxy.pid #haproxy的pid存放路径,启动进程的用户必须有权限访问此文件defaults log global #应用全局的配置 mode tcp #所处理的类别(7层 http;4层tcp;health只返回OK) maxconn 4096 #最大连接数 option tcplog #日志类别 option dontlognull #不记录健康检查的日志信息 retries 3 #3次连接失败就认为服务不可用,也可以通过后面设置 balance roundrobin #默认的负载均衡的方式,轮询方式 timeout connect 5000 #连接超时 timeout client 50000 #客户端超时 timeout server 50000 #服务器超时 timeout check 2000 #心跳检测超时#############################haproxy监听界面#############################listen monitor bind 0.0.0.0:5669 #监听端口 mode http option httplog stats enable stats refresh 30s #统计页面自动刷新时间 stats uri /haproxy?stats #统计页面url stats realm Haproxy Manager #统计页面密码框上提示文本 stats auth admin:admin #统计页面用户名和密码设置 #stats hide-version #隐藏统计页面上HAProxy的版本信息####################################################################listen rabbitmq_cluster bind 0.0.0.0:5670 balance roundrobin server rabbit003 172.18.0.4:5672 check inter 5s rise 2 fall 3 weight 1 server rabbit002 172.18.0.3:5672 check inter 5s rise 2 fall 3 weight 1 server rabbit001 172.18.0.2:5672 check inter 5s rise 2 fall 3 weight 1
简单的讲述一下上面的配置文件,具体的HAProxy等后面写几篇文章讲述,下面主要讲述关于后端服务器的设置
server rabbit003 172.18.0.4:5672 check inter 5s rise 2 fall 3 weight 1