用docker-compose部署Rabbitmq三节点集群部署方案

Rabbitmq三节点集群部署方案

1.先准备好三台服务器

主机名

IP

node1

10.4.2.10

node2

10.4.2.59

node3

10.4.2.134

2.安装准备工作(三台都要操作)

(1)在/root目录下先创建一个rabitmq目录用于存放文件

mkdir  rabitmq

(2)修改主机名和域名解析hosts文件

(1)修改主机名

hostnamectl set-hostname  node1   

hostnamectl set-hostname  node2

hostnamectl set-hostname  node3

node1  node2   node3 分别对应的ip

10.4.2.10  node1

10.4.2.59  node2

10.4.2.134 node3

(2)编辑hosts文件vi /etc/hosts

在末尾写入 (三台都一样

10.4.2.10  node1

10.4.2.59  node2

10.4.2.134 node3

(3)获取rabbitmq:3.8.19-management版本的镜像(三台都一样

docker pull   rabbitmq:3.8.19-management

(4)创建挂载目录,并且给予相应权限 (三台都要)

mkdir /var/lib/rabbitmq

chmod 777 /var/lib/rabbitmq

mkdir /var/log/rabbitmq

 chmod 777 /var/log/rabbitmq

 echo 'rabbitmq_cluster_cookie' > /var/lib/rabbitmq/.erlang.cookie

chmod 600 /var/lib/rabbitmq/.erlang.cookie

(5)在/root/rabitmq目录下创建一个docker-compose.yml的文件(三台都要

touch  docker-compose.yml

(6)编辑docker-compose.yml文件(三台都要做

Vi  docker-compose.yml

(1)10.4.2.10  node1 docker-compose.yml

version: '3.1'

services:

  rabbitmq:

    image:  rabbitmq:3.8.19-management

    network_mode: "host" # 网络模式使用主机模式

    container_name: rabbitmq1

    privileged: true

    volumes:

     - /var/lib/rabbitmq:/var/lib/rabbitmq   # 挂载数据

     - /var/log/rabbitmq:/var/log/rabbitmq   # 挂载日志

     - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime

    environment:

      - RABBITMQ_DEFAULT_USER=guest

      - RABBITMQ_DEFAULT_PASS=guest

    restart: always

(2).10.4.2.59 node2 docker-compose.yml

version: '3.1'

services:

  rabbitmq:

    image:  rabbitmq:3.8.19-management

    network_mode: "host" # 网络模式使用主机模式

    container_name: rabbitmq2

    privileged: true

    volumes:

     - /var/lib/rabbitmq:/var/lib/rabbitmq   # 挂载数据

     - /var/log/rabbitmq:/var/log/rabbitmq   # 挂载日志

     - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime

    environment:

      - RABBITMQ_DEFAULT_USER=guest

      - RABBITMQ_DEFAULT_PASS=guest

    restart: always

(3)10.4.2.134 node3 docker-compose.yml

version: '3.1'

services:

  rabbitmq:

    image:  rabbitmq:3.8.19-management

    network_mode: "host" # 网络模式使用主机模式

    container_name: rabbitmq3

    privileged: true

    volumes:

     - /var/lib/rabbitmq:/var/lib/rabbitmq   # 挂载数据

     - /var/log/rabbitmq:/var/log/rabbitmq   # 挂载日志

     - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime

    environment:

      - RABBITMQ_DEFAULT_USER=guest

      - RABBITMQ_DEFAULT_PASS=guest

    restart: always

(7)直接启动docker-compose up -d  (三台都一样)

启动docker-compose up -d

(8)查看服务docker ps |grep  ra

(9)

浏览器看一下图形化页面   如: 10.4.2.10:15672  

即:ip:15672访问        账号guest 密码guest  

(10)node2和node3加入node1集群(以node3为例,node2按照node3步骤一样去加入node1集群即可

  1. Node3加入集群

先node1上面操作:

docker exec rabbitmq1 /bin/bash -c 'rabbitmqctl stop_app'

docker exec rabbitmq1 /bin/bash -c 'rabbitmqctl reset'

docker exec rabbitmq1 /bin/bash -c 'rabbitmqctl start_app'

docker exec rabbitmq1 /bin/bash -c 'rabbitmq-plugins enable rabbitmq_management'

然后再node3上面操作:

docker exec rabbitmq3 /bin/bash -c 'rabbitmqctl stop_app'

docker exec rabbitmq3  /bin/bash -c 'rabbitmqctl reset'

docker exec rabbitmq3  /bin/bash -c 'rabbitmqctl join_cluster  rabbit@node1'

docker exec rabbitmq3  /bin/bash -c 'rabbitmqctl start_app'

(11)开启统计 (三台都一样)

进入容器然后将这个文件的值改为false

/etc/rabbitmq/conf.d//management_agent.disable_metrics_collector.conf 中的值改为 false

docker exec -it rabbitmq1 /bin/bash

echo 'management_agent.disable_metrics_collector = false' > /etc/rabbitmq/conf.d//management_agent.disable_metrics_collector.conf

## 然后重启容器

docker restart  rabbitmq1

测试加入成功与否 ,查看其状态 rabbitmqctl cluster_status

然后去图形化页面看一看 10.4.2.10:15672   账号:guest密码 guest

Node1  10.4.2.10

Node2  10.4.2.59

Node3 10.4.2.134

3.我们设置一下开机自启

(1)首先cd  /etc/systemd/system目录下

(2)然后 vi  rabbitmq-docker-compose.service

这是rabbitmq-docker-compose.service文件,里面有两处可能需要改,请注意下面的提示

 

[Unit]

Description=Docker Compose Application

Requires=docker.service

After=docker.service

[Service]

Type=oneshot

RemainAfterExit=yes

WorkingDirectory=/root/rabitmq/

ExecStart=/usr/local/bin/docker-compose up -d

ExecStop=/usr/local/bin/docker-compose down

TimeoutStartSec=0

[Install]

WantedBy=multi-user.target

其中需要注意的是:WorkingDirectory是docker-compose.yml所在目录,可以去看一下它在哪个目录之下

find   /  -name  docker-compose.yml


直接找到在/root/rabitmq/ 下

ExecStart和ExecStop是指定docker-compose的可执行性文件的目录,可以用whereis  docker-compose查看


 

加一个可执行权限

chmod a+x rabbitmq-docker-compose.service



  1. 编辑好之后,我们先重新加载 systemd管理单元:

  2. systemctl daemon-reload
    然后再启动服务并且设置开机自启

  3. systemctl start  rabbitmq-docker-compose

     systemctl enable  rabbitmq-docker-compose

这样我们开机自启就设置完成了,每当我们重启开机的时候,服务就会自动开启,再也不用我们手动启动服务了,真的很方便!!!!

 Docker Compose 部署 RabbitMQ 三节点集群有以下好处:

  1. 简化部署过程: Docker Compose 允许你使用一个单独的配置文件定义和管理多个容器,它可以提供简单且一致的部署体验。通过编写一个 YAML 文件来定义 RabbitMQ 的三个节点,可以轻松地启动整个集群,而无需手动操作每个节点。

  2. 可移植性: 使用 Docker Compose 部署的 RabbitMQ 集群可以在不同的环境中轻松迁移和部署,只需将配置文件和容器镜像移动到新的环境即可。这种可移植性确保了在开发、测试和生产环境之间的一致性,减少了部署和配置的复杂性。

  3. 扩展性: Docker Compose 具备水平扩展的能力,可以根据需要轻松地添加更多的 RabbitMQ 节点。通过简单地复制节点的定义并进行适当的配置,就可以将集群规模扩大到满足高负载需求。

  4. 隔离性: 使用 Docker 容器化部署 RabbitMQ 集群可以提供良好的隔离性。每个节点都运行在独立的容器中,彼此互不干扰。这种隔离性有助于保护集群的稳定性和安全性。

  5. 可管理性: Docker Compose 提供了一组命令和工具,可以轻松地管理和监控整个 RabbitMQ 集群。通过使用 Docker Compose 的命令,可以方便地启动、停止、重启和销毁整个集群。此外,还可以使用适当的监控工具来监视和管理节点的运行状态。

总之,使用 Docker Compose 部署 RabbitMQ 三节点集群可以提供便捷的部署过程、可移植性、扩展性、隔离性和可管理性等多个优势。这使得集群的部署、配置和管理变得更加简单和高效。

  • 26
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
根据提供的引用内容,使用docker-compose部署RabbitMQ的步骤如下: 1. 首先,编辑`docker-compose.yaml`文件,指定RabbitMQ的配置信息和挂载目录。例如,设置RabbitMQ版本为`3.10.2-management`,容器名称为`rabbitmq`,并挂载`./data`目录到容器的`/var/lib/rabbitmq`目录,挂载`./log`目录到容器的`/var/log/rabbitmq`目录,挂载`./localtime`目录到容器的`/etc/localtime`目录。同时,将主机的5672端口映射到容器的5672端口,将主机的15672端口映射到容器的15672端口,设置时区为`Asia/Shanghai`,默认用户名为`rabbit`,默认密码为`123456`。123 #### 引用[.reference_title] - *1* [docker-compose 部署RabbitMq](https://blog.csdn.net/a1394916730/article/details/126058114)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *2* [docker-compose部署rabbitmq集群](https://blog.csdn.net/p393975269/article/details/129830252)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *3* [手把手教你使用docker-compose搭建RabbitMQ集群](https://blog.csdn.net/qq_41865652/article/details/123339368)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值