RabbitMQ:Docker Compose部署RabbitMQ集群

本文详细介绍了如何使用Docker Compose创建并管理RabbitMQ集群,包括创建yaml文件、设置镜像、链接容器、加入集群及配置Spring Boot应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

部署RabbitMQ集群

创建目录,用于存放Docker Compose部署RabbitMQ集群的yaml文件:

mkdir -p /root/composefile/rabbitmq

写入该yaml文件:

vim /root/composefile/rabbitmq/rabbitmq_cluster.yaml

内容如下所示:

version: '3'
services:
    rabbitmq1:
        image: rabbitmq:management
        restart: always
        ports:
          - "15673:15672"
          - "5673:5672"
        hostname: rabbitmq1
        container_name: rabbitmq1
        environment:
          - RABBITMQ_DEFAULT_USER=admin
          - RABBITMQ_DEFAULT_PASS=admin
          - RABBITMQ_ERLANG_COOKIE=rabbitmq_erlang_cookie
    rabbitmq2:
        image: rabbitmq:management
        restart: always
        ports:
            - "5674:5672"
        hostname: rabbitmq2
        container_name: rabbitmq2
        environment:
          - RABBITMQ_ERLANG_COOKIE=rabbitmq_erlang_cookie
        links:
          - rabbitmq1
    rabbitmq3:
        image: rabbitmq:management
        restart: always
        ports:
          - "5675:5672"
        hostname: rabbitmq3
        container_name: rabbitmq3
        environment:
          - RABBITMQ_ERLANG_COOKIE=rabbitmq_erlang_cookie
        links:
          - rabbitmq1
          - rabbitmq2

rabbitmq:management镜像是开启管理插件的RabbitMQ镜像,环境变量RABBITMQ_ERLANG_COOKIE需要一致,开始部署:

docker compose -f /root/composefile/rabbitmq/rabbitmq_cluster.yaml up -d

up完成。

[+] Running 13/13
 ⠿ rabbitmq3 Pulled                                                                                                                                                                                        41.5s
   ⠿ 08c01a0ec47e Pull complete                                                                                                                                                                            19.2s
   ⠿ 1ceb23964d6c Pull complete                                                                                                                                                                            19.8s
   ⠿ 64631f643e2c Pull complete                                                                                                                                                                            33.1s
   ⠿ 67525726a753 Pull complete                                                                                                                                                                            33.2s
   ⠿ 4b28b554c25b Pull complete                                                                                                                                                                            34.4s
   ⠿ 3afdc08bc87a Pull complete                                                                                                                                                                            34.5s
   ⠿ 1e22dd212ab8 Pull complete                                                                                                                                                                            34.6s
   ⠿ b585ed397156 Pull complete                                                                                                                                                                            34.7s
   ⠿ 68de743a7628 Pull complete                                                                                                                                                                            34.7s
 ⠿ rabbitmq1 Pulled                                                                                                                                                                                        41.5s
   ⠿ 68b52ebaee48 Pull complete                                                                                                                                                                            36.1s
 ⠿ rabbitmq2 Pulled                                                                                                                                                                                        41.5s
[+] Running 4/4Network rabbitmq_default  Created                                                                                                                                                                        0.3s
 ⠿ Container rabbitmq1       Started                                                                                                                                                                        2.8s
 ⠿ Container rabbitmq2       Started                                                                                                                                                                        3.3s
 ⠿ Container rabbitmq3       Started                                                                                                                                                                        5.3s

列出正在运行的compose项目。

docker compose ls

RabbitMQ集群的所有节点都在运行。

NAME                STATUS
rabbitmq            running(3)

rabbitmq1作为主节点,需要在rabbitmq2rabbitmq3中执行一些命令,将它们加入到集群。

进入rabbitmq2

docker exec -it rabbitmq2 /bin/bash

执行:

rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rabbitmq1
rabbitmqctl start_app

# 离开容器
exit

进入rabbitmq3

docker exec -it rabbitmq3 /bin/bash

执行:

rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rabbitmq1
rabbitmqctl start_app

# 离开容器
exit

访问rabbitmq1的管理界面可以看到RabbitMQ集群的三个节点。
在这里插入图片描述

测试

测试代码参考下面这篇博客:

只需要修改配置文件:

spring:
  rabbitmq:
    addresses: 192.168.1.7:5673,192.168.1.9:5674,192.168.1.9:5675
    username: admin
    password: admin

启动应用,Spring Boot会和RabbitMQ建立连接。
在这里插入图片描述
在这里插入图片描述
使用Postman请求接口。
在这里插入图片描述
RabbitMQ管理界面可以看到消息记录。
在这里插入图片描述
消费者也监听到了这条消息。
在这里插入图片描述Docker Compose部署RabbitMQ集群就介绍到这里,如果博主有说错的地方或者大家有不同的见解,欢迎大家评论补充。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ITKaven

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值