一、配置docker加速
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://15.164.211.114:6443"],
"insecure-registries": ["15.164.211.114:6443"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
# 重启Docker服务
systemctl daemon-reload && systemctl restart docker
二、准备配置文件和集群规划
hostnamectl set-hostname 主机名
[root@rabbit1 mq]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.30.24 rabbit1
192.168.30.25 rabbit2
192.168.30.26 rabbit3
#关闭防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld
#主节点
[root@rabbit1 mq]# cat docker-compose.yml
version: '3.3'
services:
rabbitmq:
image: rabbitmq:3.9.0-management
container_name: rabbitmq
restart: always
privileged: true
network_mode: "host"
hostname: rabbit1
environment:
RABBITMQ_NODENAME: "rabbit@rabbit1"
volumes:
- ./data:/var/lib/rabbitmq
- ./logs:/var/log/rabbitmq
- ./config/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf
- ./config/definitions.json:/etc/rabbitmq/definitions.json
- ./config/.erlang.cookie:/var/lib/rabbitmq/.erlang.cookie
- ./custom_plugins:/plugins/custom
[root@rabbit1 mq]# cat ./config/rabbitmq.conf
# Config for rabbit1
listeners.tcp.default = 5672
management.tcp.port = 15672
management.tcp.ip = 0.0.0.0
loopback_users.guest = false
log.file.level = info
[root@rabbit1 mq]# cat ./config/definitions.json
{
"users": [{
"name": "admin",
"password": "7UKMq2UWj4PmTWd6zjMX",
"tags": "administrator"
}],
"vhosts": [{
"name": "/"
}],
"permissions": [{
"user": "admin",
"vhost": "/",
"configure": ".*",
"write": ".*",
"read": ".*"
}]
}
echo "MY_RABBITMQ_CLUSTER_SECRET" | tr -d '\n' > /root/mq/config/.erlang.cookie
chmod 600 /root/mq/config/.erlang.cookie
#准备好插件
[root@rabbit1 mq]# ls
config custom_plugins data docker-compose.yml logs rabbitmq.tar
[root@rabbit1 mq]# ls custom_plugins/
rabbitmq_delayed_message_exchange-3.9.0.ez
三、启动
#停止
docker-compose down
#启动 后面加-d后台启动
docker-compose up
#清理缓存慎重
docker system prune -f
#启动后要把logs文件夹给权限
chmod -R +777 ./logs/
#插件安装
[root@rabbit3 mq]# docker exec -it rabbitmq bash
root@rabbit3:/# cp /plugins/custom/rabbitmq_delayed_message_exchange-3.9.0.ez /opt/rabbitmq/plugins/
root@rabbit3:/# rabbitmq-plugins enable rabbitmq_delayed_message_exchange
Enabling plugins on node rabbit@rabbit3:
rabbitmq_delayed_message_exchange
The following plugins have been configured:
rabbitmq_delayed_message_exchange
rabbitmq_management
rabbitmq_management_agent
rabbitmq_prometheus
rabbitmq_web_dispatch
Applying plugin configuration to rabbit@rabbit3...
The following plugins have been enabled:
rabbitmq_delayed_message_exchange
started 1 plugins.
四、加入集群
从节点加入集群需要改配置文件,然后执行下面加入命令
[root@rabbit3 mq]# cat docker-compose.yml
version: '3.3'
services:
rabbitmq:
image: rabbitmq:3.9.0-management
container_name: rabbitmq
restart: always
privileged: true
network_mode: "host"
hostname: rabbit3 #这里
environment:
RABBITMQ_NODENAME: "rabbit@rabbit3" #这里
volumes:
- ./data:/var/lib/rabbitmq
- ./logs:/var/log/rabbitmq
- ./config/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf
- ./config/definitions.json:/etc/rabbitmq/definitions.json
- ./config/.erlang.cookie:/var/lib/rabbitmq/.erlang.cookie
#- ./plugins:/plugins
- ./custom_plugins:/plugins/custom
[root@rabbit3 mq]# docker exec rabbitmq rabbitmqctl import_definitions /etc/rabbitmq/definitions.json
Importing definitions in JSON from a file at "/etc/rabbitmq/definitions.json" ...
Successfully started definition import. This process is asynchronous and can take some time.
[root@rabbit3 mq]# docker restart rabbitmq
rabbitmq
[root@rabbit3 mq]# docker exec -it rabbitmq bash
root@rabbit3:/# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@rabbit3 ...
root@rabbit3:/# rabbitmqctl join_cluster rabbit@rabbit1
Clustering node rabbit@rabbit3 with rabbit@rabbit1
root@rabbit3:/# rabbitmqctl start_app
Starting node rabbit@rabbit3 ...
root@rabbit3:/#
评论 (0)