k8s

rabbitmq安装

axing
2025-08-12 / 0 评论 / 2 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2025年08月13日,已超过11天没有更新,若内容或图片失效,请留言反馈。

一、配置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:/# 

me9ettxq.png

0

评论 (0)

取消