栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

RabbitMQ:Docker Compose部署RabbitMQ集群

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

RabbitMQ:Docker Compose部署RabbitMQ集群

部署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/4
 ⠿ Network 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作为主节点,需要在rabbitmq2和rabbitmq3中执行一些命令,将它们加入到集群。

进入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集群的三个节点。

测试

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

RabbitMQ:@RabbitListener注解简化消息监听

只需要修改配置文件:

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集群就介绍到这里,如果博主有说错的地方或者大家有不同的见解,欢迎大家评论补充。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/746731.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号