RabbitMQ 基于官方
https://www.cnblogs.com/sgh1023/p/11296013.html
https://blog.csdn.net/qq_32488647/article/details/81941491
端口描述
- 集群必须开放 4369和25672端口
端口 | 描述 |
---|---|
4369 | erlang集群监听端口 |
5671 | ssl客户端通信端口 |
5672 | 默认客户端通信端口 |
15571 | 管理web端口 |
25672 | 集群通信端口 |
主机
ip地址 | 主机名
172.16.8.88 | rabbitmq-01
172.16.8.72 | rabbitmq-02
172.16.8.70 | rabbitmq-03
配置 rabbitmq-01 服务器
version: '2'
networks:
default:
external:
name: bole-network
services:
rabbitmq:
image: rabbitmq:3.8.1-management
restart: always
mem_limit: 1024m
hostname: rabbitmq-01
container_name: rabbitmq
extra_hosts:
- "rabbitmq-01:172.16.8.88"
- "rabbitmq-02:172.16.8.72"
- "rabbitmq-03:172.16.8.70"
environment:
TZ: Asia/Shanghai
RABBITMQ_DEFAULT_USER: "bole"
RABBITMQ_DEFAULT_PASS: "9uGgW7rIMX6t"
RABBITMQ_ERLANG_COOKIE: "LIGRAL3A2S"
volumes:
- /data/rabbitmq/logs:/var/log/rabbitmq
- /data/rabbitmq/mnesia:/var/lib/rabbitmq/mnesia
ports:
- "25672:25672"
- "5672:5672"
- "4369:4369"
配置 rabbitmq-02 服务器
version: '2'
networks:
default:
external:
name: bole-network
services:
rabbitmq:
image: rabbitmq:3.8.1-management
restart: always
mem_limit: 1024m
hostname: rabbitmq-02
container_name: rabbitmq
extra_hosts:
- "rabbitmq-01:172.16.8.88"
- "rabbitmq-02:172.16.8.72"
- "rabbitmq-03:172.16.8.70"
environment:
TZ: Asia/Shanghai
RABBITMQ_ERLANG_COOKIE: "LIGRAL3A2S"
volumes:
- /data/rabbitmq/logs:/var/log/rabbitmq
- /data/rabbitmq/mnesia:/var/lib/rabbitmq/mnesia
ports:
- "25672:25672"
- "5672:5672"
- "4369:4369"
配置 rabbitmq-03 服务器
version: '2'
networks:
default:
external:
name: bole-network
services:
rabbitmq:
image: rabbitmq:3.8.1-management
restart: always
mem_limit: 1024m
hostname: rabbitmq-03
container_name: rabbitmq
extra_hosts:
- "rabbitmq-01:172.16.8.88"
- "rabbitmq-02:172.16.8.72"
- "rabbitmq-03:172.16.8.70"
environment:
TZ: Asia/Shanghai
RABBITMQ_ERLANG_COOKIE: "LIGRAL3A2S"
volumes:
- /data/rabbitmq/logs:/var/log/rabbitmq
- /data/rabbitmq/mnesia:/var/lib/rabbitmq/mnesia
ports:
- "25672:25672"
- "5672:5672"
- "4369:4369"
加入集群
内存节点和磁盘节点的选择:
每个RabbitMQ节点,要么是内存节点,要么是磁盘节点。内存节点将所有的队列、交换器、绑定、用户等元数据定义都存储在内存中;而磁盘节点将元数据存储在磁盘中。单节点系统只允许磁盘类型的节点,否则当节点重启以后,所有的配置信息都会丢失。如果采用集群的方式,可以选择至少配置一个节点为磁盘节点,其余部分配置为内存节点,,这样可以获得更快的响应。所以本集群中配置节点1位磁盘节点,节点2和节点3位内存节点。
集群中的第一个节点将初始元数据代入集群中,并且无须被告知加入。而第2个和之后加入的节点将加入它并获取它的元数据。要加入节点,需要进入Docker容器,重启RabbitMQ。
设置 rabbitmq-01 节点
docker exec -it rabbitmq1 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
exit
设置 rabbitmq-02 节点
docker exec -it rabbitmq1 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq-01
rabbitmqctl start_app
exit
设置 rabbitmq-03 节点
docker exec -it rabbitmq1 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq-01
rabbitmqctl start_app
exit
访问浏览器应该就好了
版权声明:
作者:Akiraka
链接:https://www.akiraka.net/linux/217.html
来源:Akiraka
文章版权归作者所有,未经允许请勿转载。