赞
踩
RabbitMQ的Cluster集群模式一般分为两种,「普通模式」和「镜像模式」。
RabbitMQ要求在集群中至少有一个磁盘节点,所有其他节点可以是内存节点,当节点加入或者离开集群时,必须要将该变更通知到至少一个磁盘节点。如果集群中唯一的一个磁盘节点崩溃的话,集群仍然可以保持运行,但是无法进行其他操作(增删改查),直到节点恢复。
解决方案:设置两个磁盘节点,至少有一个是可用的,可以保存元数据的更改。
创建docker-compose.yaml,内容如下:
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执行
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
进入从节点1、从节点2执行
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq1
rabbitmqctl start_app
任意节点查看集群状态
rabbitmqctl cluster_status
任意节点web查看所有节点
设置镜像模式策略
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
查看策略是否设置成功
rabbitmqctl list_policies
开启mqtt
协议支持
rabbitmq-plugins enable rabbitmq_mqtt
查看所有插件情况
rabbitmq-plugins list
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。