千家信息网

docker部署rabbitmq集群的实现方法

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,拉取rabbitmq management镜像docker pull rabbitmq:3.7-rc-management若不使用Rabbitmq的management功能,可以拉取镜像:rabbit
千家信息网最后更新 2026年11月04日docker部署rabbitmq集群的实现方法

拉取rabbitmq management镜像

docker pull rabbitmq:3.7-rc-management

若不使用Rabbitmq的management功能,可以拉取镜像:rabbitmq:3.7-rc

参考: https://hub.docker.com/_/rabbitmq/

创建网络

创建rabbitmq私有网络

# docker network create rabbitmqnet# docker network lsNETWORK ID     NAME        DRIVER       SCOPE65b44ea8847c    rabbitmqnet     bridge       local...

创建节点

通过docker命令创建三个Rabbitmq nodes;

注意这里使用相同的 RABBITMQ_ERLANG_COOKIE 值

# docker run -d \--name=rabbitmq1 \-p 5672:5672 \-p 15672:15672 \-e RABBITMQ_NODENAME=rabbitmq1 \-e RABBITMQ_ERLANG_COOKIE='YZSDHWMFSMKEMBDHSGGZ' \-h rabbitmq1 \--net=rabbitmqnet \rabbitmq:3.7-rc-management# docker run -d \--name=rabbitmq2 \-p 5673:5672 \-p 15673:15672 \-e RABBITMQ_NODENAME=rabbitmq2 \-e RABBITMQ_ERLANG_COOKIE='YZSDHWMFSMKEMBDHSGGZ' \-h rabbitmq2 \--net=rabbitmqnet \rabbitmq:3.7-rc-management# docker run -d \--name=rabbitmq3 \-p 5674:5672 \-p 15674:15672 \-e RABBITMQ_NODENAME=rabbitmq3 \-e RABBITMQ_ERLANG_COOKIE='YZSDHWMFSMKEMBDHSGGZ' \-h rabbitmq3 \--net=rabbitmqnet \rabbitmq:3.7-rc-management

组建rabbitmq集群

登陆Rabbitmq的后两个节点,执行命令加入第一个Rabbitmq节点集群

### Disk Node# docker exec rabbitmq2 bash -c \"rabbitmqctl stop_app && \rabbitmqctl reset && \rabbitmqctl join_cluster rabbitmq1@rabbitmq1 && \rabbitmqctl start_app"### Ram Node# docker exec rabbitmq3 bash -c \"rabbitmqctl stop_app && \rabbitmqctl reset && \rabbitmqctl join_cluster --ram rabbitmq1@rabbitmq1 && \rabbitmqctl start_app"

退出集群

# docker exec rabbitmq3 bash -c \"rabbitmqctl stop_app && \rabbitmqctl reset && \rabbitmqctl start_app"

拉取haproxy镜像

拉取haproxy镜像

# docker pull haproxy

启动haproxy

# cat haproxy-create.sh#! /bin/bashdocker run -d \  --name rabbitmq-haproxy \  -p 1080:80 -p 5677:5677 -p 8001:8001 \  --net=rabbitmqnet \  -v /root/rabbitmq/haproxy-etc:/usr/local/etc/haproxy:ro \  haproxy:latest

haproxy的配置文件如下:

root@node0:~/rabbitmq# cat haproxy-etc/haproxy.cfg# Simple configuration for an HTTP proxy listening on port 80 on all# interfaces and forwarding requests to a single backend "servers" with a# single server "server1" listening on 127.0.0.1:8000global  daemon  maxconn 256defaults  mode http  timeout connect 5000ms  timeout client 5000ms  timeout server 5000mslisten rabbitmq_cluster  bind 0.0.0.0:5677  option tcplog  mode tcp  balance leastconn  server rabbit1 rabbitmq1:5672 check inter 2s rise 2 fall 3  server rabbit2 rabbitmq2:5672 check inter 2s rise 2 fall 3  server rabbit3 rabbitmq3:5672 check inter 2s rise 2 fall 3listen http_front  bind 0.0.0.0:80  stats uri /haproxy?statslisten rabbitmq_admin  bind 0.0.0.0:8001  server rabbit1 rabbitmq1:15672  server rabbit2 rabbitmq2:15672  server rabbit3 rabbitmq3:15672

启动haproxy后,可以通过haproxy来访问rabbitmq集群:http://external-ip:8001

获取haproxy的状态:http://external-ip:1080/haproxy?stats

rabbitmq exporter部署

要收集rabbitmq的metrics给prometheus使用的话,可以使用开源的rabbitmq-exporter

参考如下:

https://github.com/kbudde/rabbitmq_exporter

https://hub.docker.com/r/kbudde/rabbitmq-exporter/

拉取镜像

# docker pull kbudde/rabbitmq-exporter

启动rabbitmq实例

复制代码 代码如下:# docker run -d --name=rabbitmq1 -p 5672:5672 -p 15672:15672 -e RABBITMQ_NODENAME=rabbitmq1 -e RABBITMQ_ERLANG_COOKIE='YZSDHWMFSMKEMBDHSGGZ' -h rabbitmq1 --net=rabbitmqnet -p 9090:9090 rabbitmq:3.7-rc-management

开启9090端口,这个是rabbitmq exporter的默认PUBLISH_PORT

启动rabbitmq exporter实例

# docker run -d --net=container:rabbitmq1 kbudde/rabbitmq-exporter

获取rabbitmq的metrics

# wget http://localhost:9090/metrics

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

镜像 集群 节点 代码 命令 实例 网络 参考 相同 三个 两个 内容 功能 可以通过 就是 文件 状态 端口 学习 帮助 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司的优势 北京互联网科技 互联网科技媒体 互联网科技论文 互联网科技公司有哪些 盛创互联网科技有限公司 华中科技有哪些互联网大佬 互联网科技公司的市场部门 安控科技rtu产品工业互联网 欧洲十大科技互联网公司 茂名市互联网科技产业园 河南猎农互联网科技有限公司 本届互联网博览会上的黑科技 本届互联网大会上的黑科技 神州科技互联网有限公司 福州德业互联网科技 云鲸互联网络科技有限公司 互联网高科技行业有哪些企业 广州智享互联网科技 悟空问答互联网科技 美国互联网科技 互联网女皇 腾讯科技 苏州五指互联网络科技有限 互联网科技大奖都有哪些公司 中国科技创新与世界互联网大会 科技赋能视角下互联网保险发展 互联网时代的科技公司 银行科技岗属于互联网吗 从那以后互联网科技有限公司 美国五大互联网科技公司市值多少
0