docker-compose部署rabbitmq集群

  • Post author:
  • Post category:其他



目录


1.前期准备


2.创建挂载文件夹


3.创建docker-compose文件


4.修改hosts文件


5.执行docker-compose


6.执行集群命令


7.检查集群各节点状态


1.前期准备

准备了3台服务器,在服务器上安装docker和docker-compose,这些就不多啰嗦了

节点1 192.168.99.241 rabbitmq1 disk
节点2 192.168.99.242 rabbitmq2 ram
节点3 192.168.99.243 rabbitmq3 ram

2.创建挂载文件夹

创建rabbitmq文件夹,在文件夹中新建挂载文件夹config和data

config目录存放配置文件以及一些脚本

data存放rabbitmq程序数据

3.创建docker-compose文件

在第二步中创建的rabbitmq目录下,创建docker-compose.yml文件

version: '3'

services:
  rabbitmq1:
    image: rabbitmq:3.8.3-management
    container_name: rabbitmq1
    restart: always
    hostname: rabbitmq1
    ports:
      - 4369:4369
      - 5671:5671
      - 25672:25672
      - 15672:15672
      - 5672:5672
    volumes:
      - ./data:/var/lib/rabbitmq
      - ./config/rabbitmq.sh:/etc/rabbitmq/rabbitmq.sh
      - /etc/hosts:/etc/hosts
    environment:
      - RABBITMQ_DEFAULT_USER=root
      - RABBITMQ_DEFAULT_PASS=root
      - RABBITMQ_ERLANG_COOKIE=CURIOAPPLICATION

这是节点1的docker-compose文件内容,节点2和节点3只需要将文件中的rabbitmq1改成rabbitmq2或者rabbitmq3即可



注意:在挂载参数中,必须加上“- /etc/hosts:/etc/hosts”,否则集群无法成功会报“Error: unable TO perform an operation ON node ‘rabbit@rabbitmq1’. Please see diagnostics information AND suggestions below.”

4.修改hosts文件

在/etc/hosts文件中,添加各节点的信息

192.168.99.241 rabbitmq1
192.168.99.242 rabbitmq2
192.168.99.243 rabbitmq3

5.执行docker-compose

在各节点的rabbitmq目录下执行

docker-compose up -d

关闭防火墙或者开放对应的映射端口

6.执行集群命令

在第一步中事先规划好了各节点rabbitmq的存储方式,即节点1是disk,节点2和节点3都是ram

所以在直接完docker-compose后,执行命令进入各docker节点:

docker exec -it rabbitmq1 /bin/bash             -该命令以节点1为例

然后执行对应的集群命令:

disk节点(节点1主节点)执行:

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app

ram节点(节点2和节点3)执行:

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq1
rabbitmqctl start_app 

如果后期需要修改节点的存储方式可以使用:

rabbitmqctl change_cluster_node_type disc/ram            –更改节点为磁盘或内存节点

7.检查集群各节点状态

在节点下执行:

rabbitmqctl cluster_status

可以看到哪些是disk nodes,哪些是ram nodes,running nodes在运行的节点,各节点的版本信息等等



版权声明:本文为wzc900810原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。