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

02-28 1322阅读

Rabbitmq三节点集群部署方案

1.先准备好三台服务器

主机名

IP

node1

10.4.2.10

node2

10.4.2.59

node3

10.4.2.134

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

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

mkdir  rabitmq

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

(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

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

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

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

在末尾写入 (三台都一样)

10.4.2.10  node1

10.4.2.59  node2

10.4.2.134 node3

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

(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

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

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

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

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

(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

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

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

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

(9)

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

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

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

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

(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'

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

然后再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'

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

(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-compose部署Rabbitmq三节点集群部署方案

## 然后重启容器

docker restart  rabbitmq1

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

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

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

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

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

Node1  10.4.2.10

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

Node2  10.4.2.59

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

Node3 10.4.2.134

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

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

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

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

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

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

这是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


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

直接找到在/root/rabitmq/ 下

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

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

 

加一个可执行权限

chmod a+x rabbitmq-docker-compose.service



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

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

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

  3. systemctl start  rabbitmq-docker-compose

     systemctl enable  rabbitmq-docker-compose

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

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

 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 三节点集群可以提供便捷的部署过程、可移植性、扩展性、隔离性和可管理性等多个优势。这使得集群的部署、配置和管理变得更加简单和高效。

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]