RabbitMQ:rabbitmqtcl工具的使用(8)--集群的操作

1.声明

当前内容主要用于本人学习和复习之用,当前内容主要为Nodes的操作

当前内容来源:RabbitMQ官方文档

2.查看命令

在这里插入图片描述

  1. 查看集群状态 (cluster_status)
  2. 加入指定的集群主节点 (join_cluster)
  3. 移除集群中的指定节点 (forget_cluster_node)
  4. 改变节点类型 (change_cluster_node_type)
  5. 重命名节点的名称 (rename_cluster_node)
  6. 更新集群节点 ( update_cluster_nodes)
  7. 强制启动某个已失联的节点 (force_boot)
  8. 强制某个节点重置 (force_reset)

3.测试命令

1.查看集群状态

./rabbitmqctl cluster_status

在这里插入图片描述
2.移除指定节点(node1)(注意移除的节点必须是从节点)

./rabbitmqctl forget_cluster_node rabbit@node1

在这里插入图片描述
报错:说rabbit@node1节点在被移除之前必须要先使用stop_app操作

在node1中执行:./rabbitmqctl stop_app
在这里插入图片描述
ui界面
在这里插入图片描述
然后开始移除集群节点node1

./rabbitmqctl forget_cluster_node rabbit@node1

在这里插入图片描述

移除成功,查看ui界面
在这里插入图片描述
此时发现当前的node3节点中的集群显示为两个了,那个node1节点已近被移除了(说明必须让节点停止rabbit然后才能移除)

3.将刚才已近移除的node1重新加入到集群中

./rabbitmqctl join_cluster rabbit@node3
./rabbitmqctl start_app

在这里插入图片描述
加入和启动成功,查看ui界面
在这里插入图片描述
4.修改node1节点的节点类型(从disk变成ram)

./rabbitmqctl change_cluster_node_type ram

结果报错
在这里插入图片描述
说这个命令应该在rabbit程序停止的时候执行,此时停止node1的节点,并执行改变当前节点类型
在这里插入图片描述
然后重新启动该节点:./rabbitmqctl start_app,再次查看集群的类型
在这里插入图片描述

这说明:如果要修改一个集群节点的类型,必须先停止该节点的rabbit,然后在执行修改节点类型,最后启动即可完成

5.重命名节点名称node1为node1update

./rabbitmqctl rename_cluster_node 'rabbit@node1' 'rabbit@node1update'

报错
在这里插入图片描述
停止该节点:

./rabbitmqctl stop

在这里插入图片描述
重命名

./rabbitmqctl rename_cluster_node 'rabbit@node1' 'rabbit@node1update'

在这里插入图片描述
但是失败了。。。(解决后写在这里)

6.更新集群节点 ( update_cluster_nodes)

./rabbitmqctl update_cluster_nodes rabbit@node1

在这里插入图片描述
这里也需要停止要更新的节点,并且要指定与哪个节点同步数据

7.强制启动某个节点 (force_boot)

将当前的node1节点使用:./rabbitmqctl stop_app,进行停止,然后再让node1强制启动

./rabbitmqctl force_boot 

发现没有任何作用

9.重置node1

./rabbitmqctl force_reset

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
发现使用了force_reset后该节点再次启动(使用stop也是一样)的时候不会加入集群中了!
使用重新加入:./rabbitmqctl join_cluster rabbit@node3,结果

Node rabbit@node3 thinks it\'s clustered with node rabbit@node1, but rabbit@node1 disagrees

这里产生了,node3想让这个node1加入集群中,但是node1没有同意!

尝试更新状态(在node1中执行)

./rabbitmqctl update_cluster_nodes rabbit@node3

在这里插入图片描述
发现成功
在这里插入图片描述
这说明了:如果让一个节点执行force_reset,那么再次启动的时候。是不能加入到集群中的,必须执行更新同步状态才能再次加入集群!

4.总结

1.集群中的操作中,使用forget_cluster_node将一个节点移除集群,使用join_cluster方式将已近移除的节点加入集群

2.使用force_reset将节点数据重置后,那么该节点启动后不能加入集群,需要同步数据才行

3.可以通过修改节点的类型方式改变集群类型,可以是disc和ram(使用ram的时候更加占用内存)

4.注意操作集群的时候很多时候都需要stop或者stop_app

以上纯属个人见解,如有问题请联本人!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值