原有集群安装步骤:https://www.cnblogs.com/sanduzxcvbnm/p/15797788.html

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
192.168.2.167 rabbitmq4
EOF

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

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

version: '3'

services:
rabbitmq1:
image: rabbitmq:3.8.3-management
container_name: rabbitmq4
restart: always
hostname: rabbitmq4
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

注意:在挂载参数中,必须加上“- ./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节点:

docker exec -it rabbitmq4 /bin/bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --disc rabbit@rabbitmq1
rabbitmqctl start_app 

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

# 转换节点类型
# rabbitmqctl stop_app
# rabbitmqctl change_cluster_node_type disc 或者是 rabbitmqctl change_cluster_node_type ram
# rabbitmqctl start_app 

7.原有集群节点逐个从集群中移除

设置集群名称:rabbitmqctl -q set_cluster_name myrabbitmq (这一步最后再做)

在留在集群中的节点上执行操作,如下是在rabbitmq4新节点上执行的,从集群中移除rabbitmq2节点 (其他要移除的节点依次操作)

先把要移除的节点停止运行:rabbitmqctl -n rabbit@rabbitmq2 stop_app 或者是rabbitmqctl -n rabbit@rabbitmq2 stop

再从集群中移除该节点:rabbitmqctl -n rabbit@rabbitmq4 forget_cluster_node rabbit@rabbitmq2

检查集群各节点状态:rabbitmqctl cluster_status

最后关闭移除原有集群节点的rabbit应用

8.新集群节点中的hosts文件移除原来集群的节点内容

先把内存节点都修改为磁盘节点(添加的时候已设置),然后重启节点 (部分节点修改成内存类似)

现有rabbitmq集群添加新节点,移除旧节点(可以作为rabbitmq集群迁移使用)的更多相关文章

  1. k8s集群节点更换ip 或者 k8s集群添加新节点

    1.需求情景:机房网络调整,突然要回收我k8s集群上一台node节点机器的ip,并调予新的ip到这台机器上,所以有了k8s集群节点更换ip一说:同时,k8s集群节点更换ip也相当于k8s集群添加新节点 ...

  2. Android自定义视图一:扩展现有的视图,添加新的XML属性

    这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! Android自定义视图一:扩展现有的视图,添加新的XML属性 Android自定义视图二:如何绘制内容 Android自定义视图三: ...

  3. Hadoop集群添加新节点步骤

    1.在新节点中进行操作系统配置,包括主机名.网络.防火墙和无密码登录等. 2.在所有节点/etc/host文件中添加新节点 3.把namenode的有关配置文件复制到该节点 4.修改master节点s ...

  4. 大数据实操3 - hadoop集群添加新节点

    hadoop集群支持动态扩展,不需要停止原有集群节点就可以实现新节点的加入. 我是使用docker搭建的进群环境,制作了镜像文件,这里以我的工作基础为例子介绍集群中添加集群的方法 一.制作一个新节点 ...

  5. hadoop集群添加新节点

    0.说明 Hadoop集群已经运行正常,现在新买了一些机子,要加入到集群里面增加新的节点.以下就是增加的过程. 1.配置运行环境 安装与master和其他slave相同的java环境,jdk版本要相同 ...

  6. redis 集群添加新节点

    准备好需要添加的节点:如何创建节点 启动创建的节点: 启动成功: 添加新节点:redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000  第 ...

  7. etcd v3 ssl 集群添加新节点

    集群搭建 下面只用同一台服务器进行三个成员节点的开启 节点1 ./etcd --name cd0 --initial-advertise-peer-urls http://127.0.0.1:2380 ...

  8. redis集群添加新节点

    一.创建节点(接上文) 1.在H1服务器/root/soft目录下创建7002目录 2.将7001目录的配置文件redis.conf拷贝到7002,并修改配置文件的端口 3.进入 redis-5.0. ...

  9. k8s集群添加新得node节点

    服务端操作: 方法一: 获取master的join token kubeadm token create --print-join-command 重新加入节点 kubeadm join 192.16 ...

随机推荐

  1. 常用类-jdk8之前的日期和API

    一.System静态方法 点击查看代码 package com.Tang.StringDay01; import org.junit.Test; public class DateTimeTest { ...

  2. Windows 远程连接后,自动断开,所有程序都自动关闭(待验证,待更新)

    win+r输入regedit打开注册表编辑SecurityLayer,将值改为2 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Ter ...

  3. 004 SpringSecurity验证规则

    SpringSecurity验证规则 SpringSecurity框架登录后,==在userDetails对象中,一定会有一个权限列表 == 登录用户对象的值可能是: {"authoriti ...

  4. 阻塞赋值-非阻塞赋值(LUT,FDC,BUF...)

    一.看RTL级综合网络 1.1 FDC FDPE FDRE FDSE均是XILINX FPGA片上资源中四种不同的触发器,具体功能可直接百度 1.2 LUT是实现组合逻辑功能的一张真值表,根据输入值直 ...

  5. CF1705A Mark the Photographer 题解

    题意: 给定一队人的身高,将其分成两队,问能否实现前面的人均低于后面的人至少 \(x\) 个单位长度. 做法: 将这队人的身高进行排序,\(h_1 \sim h_n\) 即为第一队,\(h_{n+1} ...

  6. HCNP Routing&Switching之DHCP中继

    前文我们聊了下BFD相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16487842.html:今天来聊一聊DHCP中继相关话题: DHCP的作用 DH ...

  7. 常用的函数式接口_Prodicate接口_默认方法or&negate和常用的函数式接口_Predicate接口练习_集合信息筛选

    常用的函数式接口_Prodicate接口_默认方法or&negate OR package com.yang.Test.PredicateStudy; import java.util.fun ...

  8. 修改 hosts

    不会牛逼操作 -1. 位置.格式 所有系统都差不多,都是 啥啥/etc/hosts 这样的 . 具体去查即可 . 格式: ip + 域名 域名不能含有通配符 hosts 可以绕过 dns 解析,直接访 ...

  9. 斜率优化 dp 总结

    我们以一道例题引入: 洛谷 P2365 任务安排: \(n\) 个任务排成一个序列在一台机器上等待完成(顺序不得改变),这 \(n\) 个任务被分成若干批,每批包含相邻的若干任务. 从零时刻开始,这些 ...

  10. SpringBoot定时任务 - 集成quartz实现定时任务(单实例和分布式两种方式)

    最为常用定时任务框架是Quartz,并且Spring也集成了Quartz的框架,Quartz不仅支持单实例方式还支持分布式方式.本文主要介绍Quartz,基础的Quartz的集成案例本,以及实现基于数 ...