rabbitmq高可用集群搭建(Docker)
第一步:在docker中搭建rabbitmq集群
以下是集群搭建脚本,可根据自身需求配置或修改后使用。
说明:这里只在同一台物理机进行搭建,以下所有参数配置均是在同一台机器上,如要分布式部署,注意自行修改。
#!/bin/bash
# 基础配置
DefaultUser="zwf"
DefaultPassword="123456"
ImageName="rabbitmq:3.7.4-management"
docker pull ${ImageName}
# 创建集群网络
docker network create rabbitmq-net
# 创建并启动容器
docker run -d \
--name=rabbitmq1 \
-e RABBITMQ_NODENAME=rabbitmq1 \
-e RABBITMQ_ERLANG_COOKIE='zhouwenfeng' \
-e RABBITMQ_DEFAULT_USER=${DefaultUser} \
-e RABBITMQ_DEFAULT_PASS=${DefaultPassword} \
-h rabbitmq1 \
--net=rabbitmq-net \
${ImageName}
docker run -d \
--name=rabbitmq2 \
-e RABBITMQ_NODENAME=rabbitmq2 \
-e RABBITMQ_ERLANG_COOKIE='zhouwenfeng' \
-e RABBITMQ_DEFAULT_USER=${DefaultUser} \
-e RABBITMQ_DEFAULT_PASS=${DefaultPassword} \
-h rabbitmq2 \
--net=rabbitmq-net \
${ImageName}
docker run -d \
--name=rabbitmq3 \
-e RABBITMQ_NODENAME=rabbitmq3 \
-e RABBITMQ_ERLANG_COOKIE='zhouwenfeng' \
-e RABBITMQ_DEFAULT_USER=${DefaultUser} \
-e RABBITMQ_DEFAULT_PASS=${DefaultPassword} \
-h rabbitmq3 \
--net=rabbitmq-net \
${ImageName}
echo "Wait a while for all containers are ready..."
sleep 30
# 将结点2和3加入集群
docker exec rabbitmq2 bash -c \
"rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl join_cluster rabbitmq1@rabbitmq1 && \
rabbitmqctl start_app"
docker exec rabbitmq3 bash -c \
"rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl join_cluster rabbitmq1@rabbitmq1 && \
rabbitmqctl start_app"
# 查看集群情况
docker exec -it rabbitmq1 bash -c "rabbitmqctl cluster_status"
# 通过正则表达式设置指定队列为镜像队列
# 根据需要可以指定多个不同的ha-mode
docker exec -it rabbitmq1 rabbitmqctl \
set_policy ha-all 'queue.+' '{"ha-mode":"all"}'
第二步:配置HAProxy反向代理
此处用haproxy反代访问集群以及management。
注意:这里的haproxy与rabbitmq集群在同一个网络中,即docker --network=rabbitmq-net
HAProxy配置如下:
global #全局属性
maxconn 256 #最大同时256连接
user root
group root
pidfile /var/run/haproxy.pid #指定保存HAProxy进程号的文件
log 127.0.0.1 local0 info
log 127.0.0.1 local1 warning
defaults #默认参数
log global
mode http
option httplog
option dontlognull
option tcplog
timeout connect 5000ms #连接server端超时5s
timeout client 10000ms #客户端响应超时10s
timeout server 10000ms #server端响应超时10s
# rabbitmq服务TCP代理
listen rabbitmq
bind *:5678
mode tcp # 4层代理
balance roundrobin
server rabbitmq1 rabbitmq1:5672 weight 1 maxconn 60000 check inter 3s
server rabbitmq2 rabbitmq2:5672 weight 1 maxconn 60000 check inter 3s
server rabbitmq3 rabbitmq3:5672 weight 1 maxconn 60000 check inter 3s
# rabbitmq-management服务HTTP代理
frontend rabbitmq-management
bind *:15678
mode http
default_backend rabbitmq-management
# rabbitmq-management backend
backend rabbitmq-management
balance roundrobin
option forwardfor
server rabbitmq1-management rabbitmq1:15672 check
server rabbitmq2-management rabbitmq2:15672 check
server rabbitmq3-management rabbitmq3:15672 check
haproxy启动脚本:
#!/bin/bash
docker pull haproxy
docker run -d --network rabbitmq-net --name rabbitmq-haproxy -p 5678:5678 -p 15678:15678 -v ${PWD}:/usr/local/etc/haproxy:ro haproxy
第三步:检验部署结果
可以试着访问rabbitmq的dashboard,此处效果展示略。
相关文章
- 利用Docker搭建基于GIT的源代码管理工具Gitea
Gitea 拥有很低的系统需求,即使Raspberry Pi也可运行,节约机器资源!如果资源有限,使用Gitea作为源代码管理工具是一个不错的选择。 docker-compose配置文件 可以利用
- docker搭建kong过程
1、docker 的安装 # 更新系统包到最新。 sudo yum -y update # 执行Docker安装脚本 sudo curl -sSL https://get.docker.com/ |
- 在Docker中运行MinDoc的几点注意事项
项目内提供了生成Docker镜像的Dockerfile文件,用户可自行编译。 之前一直使用daocloud编译镜像,最近发现这个平台很不稳定,很多时候无法正常编译成功。 目前准备切换到阿里云镜像托管服
- 使用docker-compose快速部署
根据本指南操作,你将会得到... 可以直接通过IP的80端口访问的发卡的网站 优点 配置只需要几分钟(特指对docker熟悉的人) 不用通过lnmp脚本花太多时间来编译安装所需的软件 不用手动去
- rabbitmq高可用集群搭建(Docker)
第一步:在docker中搭建rabbitmq集群 以下是集群搭建脚本,可根据自身需求配置或修改后使用。说明:这里只在同一台物理机进行搭建,以下所有参数配置均是在同一台机器上,如要分布式部署,注意自行修
随机推荐
- 利用Docker搭建基于GIT的源代码管理工具Gitea
Gitea 拥有很低的系统需求,即使Raspberry Pi也可运行,节约机器资源!如果资源有限,使用Gitea作为源代码管理工具是一个不错的选择。 docker-compose配置文件 可以利用
- docker搭建kong过程
1、docker 的安装 # 更新系统包到最新。 sudo yum -y update # 执行Docker安装脚本 sudo curl -sSL https://get.docker.com/ |
- 在Docker中运行MinDoc的几点注意事项
项目内提供了生成Docker镜像的Dockerfile文件,用户可自行编译。 之前一直使用daocloud编译镜像,最近发现这个平台很不稳定,很多时候无法正常编译成功。 目前准备切换到阿里云镜像托管服
- 使用docker-compose快速部署
根据本指南操作,你将会得到... 可以直接通过IP的80端口访问的发卡的网站 优点 配置只需要几分钟(特指对docker熟悉的人) 不用通过lnmp脚本花太多时间来编译安装所需的软件 不用手动去
- rabbitmq高可用集群搭建(Docker)
第一步:在docker中搭建rabbitmq集群 以下是集群搭建脚本,可根据自身需求配置或修改后使用。说明:这里只在同一台物理机进行搭建,以下所有参数配置均是在同一台机器上,如要分布式部署,注意自行修