使用DockerCompose部署RabbitMQ集群

Tips: 本流程使用的操作系统是 Centos7, 采用 docker-compose的方式部署

一、步骤

1. 准备三台机器, 分别修改主机名称为 node1, node2, node3
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
2. 按照规划,修改/etc/hosts文件 (请根据实际情况,规划数据节点、内存节点):
节点名称IP节点类型
node1178.108.224.8主节点
node2178.108.224.9数据节点
node3178.108.224.10内存节点
## vi /etc/hosts 文件, 增加下面内容

178.108.224.8 node1
178.108.224.9 node2
178.108.224.10 node3
3. 在3个节点,分别执行以下操作 (已部署好docker-compose可以跳过第一步).
3.1 部署docker和Docker Compose

详见:部署Docker和Docker Compose

 

3.2 开放端口 (4369 & 5672 &15672 & 25672)

Tips: 如果是机器是在云平台上,记得要去修改安全组的下行规则

firewall-cmd --permanent --zone=public --add-port=4369/tcp
firewall-cmd --permanent --zone=public --add-port=5672/tcp
firewall-cmd --permanent --zone=public --add-port=15672/tcp
firewall-cmd --permanent --zone=public --add-port=25672/tcp
firewall-cmd --reload
systemctl restart firewalld.service
3.3 创建必要的目录 & 赋权限 – 用于在 rabbitmq.yaml 文件中挂载
## 创建lib映射目录
mkdir /var/lib/rabbitmq
chmod 777 /var/lib/rabbitmq

## 创建log映射目录
mkdir /var/log/rabbitmq
chmod 777 /var/log/rabbitmq

## 集群里每个节点上的.erlang.cookie文件内容要求一样。 我们此处自己创建一个文件, 然后映射到容器里
echo 'rabbitmq_cluster_cookie' > /var/lib/rabbitmq/.erlang.cookie
chmod 600 /var/lib/rabbitmq/.erlang.cookie
3.4 下载rabbitmq的docker镜像
## 拉取 rabbitmq镜像
docker pull rabbitmq:latest
4. 准备好 rabbitmq.yaml文件, 放在 /opt/rabbitmq 目录下. 然后创建容器
##  rabbitmq.yaml文件
version: '3.1'
services:
  rabbitmq:
    image: rabbitmq:latest       
    network_mode: "host" # 网络模式使用主机模式 
    container_name: rabbitmq
    privileged: true
    volumes:    
      - /var/lib/rabbitmq:/var/lib/rabbitmq   # 挂载数据   
      - /var/log/rabbitmq:/var/log/rabbitmq   # 挂载日志
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
    environment:
      - RABBITMQ_DEFAULT_USER=smart
      - RABBITMQ_DEFAULT_PASS=123456
    restart: always
## 启动rabbitmq
docker-compose -f /opt/rabbitmq/rabbitmq.yaml up -d
5. 在主节点(node1)执行下面命令
docker exec rabbitmq /bin/bash -c 'rabbitmqctl stop_app'
docker exec rabbitmq /bin/bash -c 'rabbitmqctl reset'
docker exec rabbitmq /bin/bash -c 'rabbitmqctl start_app'
docker exec rabbitmq /bin/bash -c 'rabbitmq-plugins enable rabbitmq_management'
6. 在从节点(node2, node3)执行下面命令
## 加入主节点
docker exec rabbitmq /bin/bash -c 'rabbitmqctl stop_app'
docker exec rabbitmq /bin/bash -c 'rabbitmqctl reset'
# --ram表示加入的角色是内存节点, 不加该参数,表示数据节点
docker exec rabbitmq /bin/bash -c 'rabbitmqctl join_cluster --ram rabbit@node1'
docker exec rabbitmq /bin/bash -c 'rabbitmqctl start_app'
7. 开启统计
## 进入容器,将 /etc/rabbitmq/conf.d//management_agent.disable_metrics_collector.conf 中的值改为 false
docker exec -it rabbitmq /bin/bash
echo 'management_agent.disable_metrics_collector = false' > /etc/rabbitmq/conf.d//management_agent.disable_metrics_collector.conf

## 然后重启容器
docker restart rabbitmq

最终效果如下:

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值