1.拉取镜像

集群中每个节点都需要执行

docker pull rabbitmq:3.8.3-management

2.上传docker-compose文件,设置可执行权限

相关文地址:https://www.cnblogs.com/sanduzxcvbnm/p/13292779.html

cd /usr/local/bin/
chmod +x /usr/local/bin/docker-compose

3.创建有关目录

路径根据实际需求来定(hosts文件下同)

mkdir -p /home/rabbitmq/{config,data}

config目录存放配置文件以及一些脚本,data存放rabbitmq程序数据

添加hosts文件 (最好不要在系统hosts文件中设置)

tee /home/rabbitmq/hosts <<-'EOF'
192.168.2.163 rabbitmq1
192.168.2.164 rabbitmq2
192.168.2.165 rabbitmq3
EOF

4.在上一步中创建的rabbitmq目录下,创建docker-compose.yml文件

# cat  /home/rabbitmq/docker-compose.yml

version: '3'

services:
rabbitmq1:
image: rabbitmq:3.8.3-management
container_name: rabbitmq1
restart: always
hostname: rabbitmq1
ports:
- 4369:4369
- 5671:5671
- 5672:5672
- 15672:15672
- 25672:25672
- 15692:15692
volumes:
- ./data:/var/lib/rabbitmq
- ./config/rabbitmq.sh:/etc/rabbitmq/rabbitmq.sh
- ./hosts:/etc/hosts
environment:
- RABBITMQ_DEFAULT_USER=guest
- RABBITMQ_DEFAULT_PASS=password
- RABBITMQ_ERLANG_COOKIE=thisisacookie

这是节点1的docker-compose.yml文件内容,节点2和节点3只需要将文件中的rabbitmq1改成rabbitmq2或者rabbitmq3即可

注意:在挂载参数中,必须加上“- ./hosts:/etc/hosts”,否则集群无法成功会报“Error: unable TO perform an operation ON node 'rabbit@rabbitmq1'. Please see diagnostics information AND suggestions below.”

5.启动

各节点均在"/home/rabbitmq"路径下执行如下命令:

docker-compose up -d

关闭防火墙或者开放对应的映射端口

6.执行集群命令

在第一步中事先规划好了各节点rabbitmq的存储方式,即节点1是disk,节点2和节点3都是ram

所以在直接完docker-compose后,执行命令进入各docker节点:

# 该命令以节点1为例
docker exec -it rabbitmq1 /bin/bash 然后执行对应的集群命令:
disk节点(节点1主节点)执行: rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app ram节点(节点2和节点3)执行: rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq1
rabbitmqctl start_app 

如果后期需要修改节点的存储方式可以使用:rabbitmqctl change_cluster_node_type disc/ram     #更改节点为磁盘或内存节点

7.检查集群各节点状态

在节点下执行:rabbitmqctl cluster_status

检查插件情况:rabbitmq-plugins list

8.设置策略

进入任意一个RabbitMQ节点,执行如下命令:

rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

查看是否设置成功:rabbitmqctl list_policies

使用docker-compose.yml安装rabbitmq集群的更多相关文章

  1. docker-compose安装rabbitmq集群(主从集群---》镜像集群)

    docker-compose安装rabbitmq集群(主从集群--->镜像集群) yls 2020/5/11 创建docker-compose.yml 文件 version: '3' servi ...

  2. k8s中安装rabbitmq集群

    官方文档地址:https://www.rabbitmq.com/kubernetes/operator/quickstart-operator.html 要求 1.k8s版本要1.18及其以上 2.能 ...

  3. ActiveMQ此例简单介绍基于docker的activemq安装与集群搭建

    ActiveMQ拓展连接 此例简单介绍基于Docker的activemq安装与集群搭建 一 :安装 1.获取activemq镜像 docker pull webcenter/activemq 2.启动 ...

  4. CentOS7安装RabbitMQ集群

    实验环境 RabbitMQ 集群 server1.example.com    IP: 10.10.10.11    Node: diskserver2.example.com    IP: 10.1 ...

  5. 集群架构和CentOS7安装RabbitMQ集群(单机版)

    1. 集群架构 1.1 四种内部元数据 队列元数据.交换器元数据.绑定元数据.vhost元数据. 单一节点中:会将数据存储到内存,同时将持久化元数据保存到硬盘. 集群中: 存储到磁盘上.内存中. 集群 ...

  6. CentOS7安装rabbitmq集群(二进制)

    一.RabbiMQ简介 RabbiMQ是用Erang开发的,集群非常方便,因为Erlang天生就是一门分布式语言,但其本身并不支持负载均衡. RabbiMQ模式 RabbitMQ模式大概分为以下三种: ...

  7. kubernets安装rabbitmq集群.

    RabbitMQ集群的两种模式 1)普通模式:默认的集群模式,队列消息只存在单个节点上 2)镜像模式:队列为镜像队列,队列消息存在每个节点上 配置同步: 配置同步: 1.Ha mode 同步模式,以下 ...

  8. 使用 Docker Compose 快速构建 TiDB 集群

    本文档介绍如何在单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群.Docker Compose 可以通过一个 YAML 文件定义多个容器的应用服务,然后一键启动或停止. ...

  9. Docker Compose 搭建 Redis Cluster 集群环境

    在前文<Docker 搭建 Redis Cluster 集群环境>中我已经教过大家如何搭建了,本文使用 Docker Compose 再带大家搭建一遍,其目的主要是为了让大家感受 Dock ...

随机推荐

  1. 从零开始手写Cartographer(1): 开端

    写在前面的话 我做SLAM已经三年了.读书时初学SLAM,一开始无从下手,直到读了高博士的博客,茅塞顿开,渐入佳境.后来又买了他的<视觉SLAM十四讲>,常伴手边,直至毕业.几个月前找工作 ...

  2. 如何在Rust中打印变量的类型?

    #![feature(core_intrinsics)] fn print_type_of<T>(_: T) { println!("{}", unsafe { std ...

  3. DQL排序查询和DQL聚合函数

    DQL:查询语句 排序查询 语法: order by 字句 order by 排序字段1 排序方式1,排序字段2 排序方式2... 排序方式: ASC:升序,默认的 DESC:降序 SELECT * ...

  4. ABC251 题解

    典中典比赛 . 目录 A - Six Characters B - At Most 3 (Judge ver.) C - Poem Online Judge D - At Most 3 (Contes ...

  5. 筛 sigma_k

    问题 定义 \(\sigma_k(n)\) 表示 \(n\) 的所有约数的 \(k\) 次方和,即 \[\sigma_k(n)=\sum_{d\mid n}d^k \] 问题:求 \(\sigma_k ...

  6. innerHTML 和 innertext 以及 outerHTML

    今天在制作firefox下支持复制的js代码的时候,用到了innerText,测试发现原来firefox支持innerHTML但不支持innerText. test.innerHTML: 也就是从对象 ...

  7. wamp升级php

    1.  停止WAMP服务器. 2.  去网站windows.php.net 下载php-5.4.31-nts-Win32-VC9-x86.zip(32位的). 不要下载THE INSTALLER. 3 ...

  8. Vector3类定义

    大家一定要先看书,在看我的随笔啊.不然不知道原理的.而且我是不写教程的,只是写笔记怕自己忘记了. 我把所有的基础类放在了名叫geometry的文件中,包含Vector3, Normal3, Point ...

  9. Python-基础学习-第二轮

    目录 数据类型 文件 自调用其他程序 os.system函数 os.startfile 函数 subprocess 模块 线程和进程 创建新线程 共享数据的访问控制 deamon线程 多线程 JSON ...

  10. HDU 1542/POJ 1151 Atlantis (scaning line + segment tree)

    A template of discretization + scaning line + segment tree. It's easy to understand, but a little di ...