本文主要是介绍rabbitmq基于haproxy和keepalived构建高可用集群,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.rabbitmq安装参照之前博客
2.haproxy的安装,haproxy的安装主要是看懂配置文件,以下为使用docker-compose方式安装的相关配置文件
#新建haproxy文件加,
mkdir /data/haproxy
#新建docker-compose.yml文件和haproxy.cfg文件
docker-compose.yml
version: "3.9"
services:haproxy:image: haproxy:2.3.4container_name: haproxyrestart: alwaysvolumes:- /data/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfgports:- 8888:8888 # 监控端口- 56720:56720 # rabbitmq端口- 61600:61600 # stomp端口privileged: true
haproxy.cfg
global #全局设置maxconn 20000 #最大连接数log 127.0.0.1 local0 #日志输出配置,所有日志都记录在本机,通过local0输出daemon #以后台形式运行haproxy
defaults #默认设置mode http #工作模式,支持TCP、http、healthlog global #使用global的日志option httplog #启用HTTP请求,会话状态和计时器的日志记录option dontlognull #启用空连接不记录日志maxconn 8000 #设置最大套接字连接数timeout client 30s #设置客户端的最长不活动时间retries 2 #2次连接失败就认为服务器不可用,主要通过后面的check检查option redispatch #当serverid对应的服务器挂掉后,强制定向到其他健康服务器timeout connect 5s #设置等待连接尝试到服务器成功的最长时间。timeout server 30s #设置服务器端的最长不活动时间。timeout queue 30s #设置队列中等待连接池空闲的最长时间frontend dashboard #haproxy监控代理bind *:8888mode http#URI相对地址stats uri /dashboard#统计报告格式stats realm Global\ statistics#登陆帐户信息stats auth admin:123456frontend rabbitmq #rabbitmq代理bind *:56720default_backend dynamicstats refresh 5sbackend dynamic #后台mode httpstats refresh 5sbalance roundrobin #负载均衡算法(轮循)server master01 192.168.56.105:5672 check port 5672 weight 1 maxconn 2000server slave02 192.168.56.106:5672 check port 5672 weight 1 maxconn 2000server slave01 192.168.56.107:5672 check port 5672 weight 1 maxconn 2000frontend rabbitmq_stomp #rabbitmq_stomp代理mode tcpoption tcplogbind *:61600default_backend dynamic_stompbackend dynamic_stomp #后台mode tcpoption tcplogbalance roundrobin #负载均衡算法(轮循)server master01 192.168.56.105:61613 check port 61613 weight 1 maxconn 5000server slave02 192.168.56.106:61613 check port 61613 weight 1 maxconn 5000server slave01 192.168.56.107:61613 check port 61613 weight 1 maxconn 5000
配置完启动,然后访问haproxy的监控页面
http://192.168.56.107:8888/dashboard
3.frontend配置方式
haproxy.cfg
global #全局设置maxconn 20000 #最大连接数log 127.0.0.1 local0 #日志输出配置,所有日志都记录在本机,通过local0输出daemon #以后台形式运行haproxy
defaults #默认设置mode http #工作模式,支持TCP、http、healthlog global #使用global的日志option httplog #启用HTTP请求,会话状态和计时器的日志记录option dontlognull #启用空连接不记录日志maxconn 8000 #设置最大套接字连接数timeout client 30s #设置客户端的最长不活动时间retries 2 #2次连接失败就认为服务器不可用,主要通过后面的check检查option redispatch #当serverid对应的服务器挂掉后,强制定向到其他健康服务器timeout connect 5s #设置等待连接尝试到服务器成功的最长时间。timeout server 30s #设置服务器端的最长不活动时间。timeout queue 30s #设置队列中等待连接池空闲的最长时间listen dashboard #haproxy监控代理bind *:8888mode http#URI相对地址stats uri /dashboard#统计报告格式stats realm Global\ statistics#登陆帐户信息stats auth admin:123456listen rabbitmqbind *:56720mode httpstats refresh 5sbalance roundrobin #负载均衡算法(轮循)server master01 192.168.56.105:5672 check port 5672 weight 1 maxconn 2000server slave02 192.168.56.106:5672 check port 5672 weight 1 maxconn 2000server slave01 192.168.56.107:5672 check port 5672 weight 1 maxconn 2000listen rabbitmq_stompbind *:61600mode tcpoption tcplogbalance roundrobin #负载均衡算法(轮循)server master01 192.168.56.105:61613 check port 61613 weight 1 maxconn 5000server slave02 192.168.56.106:61613 check port 61613 weight 1 maxconn 5000server slave01 192.168.56.107:61613 check port 61613 weight 1 maxconn 5000
该方式haproxy监控状态如下
这篇关于rabbitmq基于haproxy和keepalived构建高可用集群的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!