百因必有果,普通集群导致接收不到
后台报错。所以得集群部署
version: '3.7'
# 指定Cookie,保证集群中的不同节点相互通信
x-rabbitmq-common: &rabbitmq-common
image: rabbitmq:management
environment:
- RABBITMQ_DEFAULT_USER=admin
- RABBITMQ_DEFAULT_PASS=admin
- RABBITMQ_ERLANG_COOKIE=rabbitmq_erlang_cookie
restart: always
# 启动3个rabbitmq容器节点
# rabbitmq1为disk主节点
# rabbitmq2、rabbitmq3为ram从节点
services:
rabbitmq1:
<<: *rabbitmq-common
hostname: rabbitmq1
ports:
- 15672:15672
- 5672:5672
- 1883:1883
rabbitmq2:
<<: *rabbitmq-common
hostname: rabbitmq2
ports:
- 15673:15672
- 5673:5672
- 1884:1883
rabbitmq3:
<<: *rabbitmq-common
hostname: rabbitmq3
ports:
- 15674:15672
- 5674:5672
- 1885:1883
docker-compose up -d
启动后
进入节点1,执行集群命令,进入主节点1执行
docker exec -it 节点容器ID bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
进入从节点1、从节点2执行
docker exec -it 节点容器ID bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq1
rabbitmqctl start_app
任意节点web查看所有节点
rabbitmqctl cluster_status
任意节点web查看所有节点
123
设置镜像模式策略
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
查看策略是否设置成功
rabbitmqctl list_policies
开启mqtt协议支持
rabbitmq-plugins enable rabbitmq_mqtt
查看所有插件情况
rabbitmq-plugins list