rabbitmqctl update_cluster_nodes {clusternode}
在集群中的节点应用启动前咨询clusternode节点的最新信息,并更新相应的集群信息。这个和join_cluster不同,它不加入集群。考虑这样一种情况,节点A和节点B都在集群中,当节点A离线了,节点C又和节点B组成了一个集群,然后节点B又离开了集群,当A醒来的时候,它会尝试联系节点B,但是这样会失败,因为节点B已经不在集群中了。rabbitmqctl update_cluster_nodes -n A C可以解决这种场景。
示例如下:

##假设已有node1和node组成的集群##1.初始状态[root@node1 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@node1
[{nodes,[{disc,[rabbit@node1,rabbit@node2]}]},{running_nodes,[rabbit@node2,rabbit@node1]},{cluster_name,<<"rabbit@node1">>},{partitions,[]},{alarms,[{rabbit@node2,[]},{rabbit@node1,[]}]}]##2.关闭node1节点的应用[root@node1 ~]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@node1##3.之后将node3加入到集群中(rabbitmqctl join_cluster rabbit@node2)##4.再将node2节点的应用关闭##5.最后启动node1节点的应用,此时会报错[root@node1 ~]# rabbitmqctl start_app
Starting node rabbit@node1
BOOT FAILED
===========
Timeout contacting cluster nodes: [rabbit@node2].
....(省略)##6.如果在启动node1节点的应用之前咨询node3并更新相关集群信息则可以解决这个问题[root@node1 ~]# rabbitmqctl update_cluster_nodes rabbit@node3
Updating cluster nodes for rabbit@node1 from rabbit@node3
[root@node1 ~]# rabbitmqctl start_app
Starting node rabbit@node1##7.最终集群状态[root@node1 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@node1
[{nodes,[{disc,[rabbit@node1,rabbit@node3]}]},{running_nodes,[rabbit@node3,rabbit@node1]},{cluster_name,<<"rabbit@node1">>},{partitions,[]},{alarms,[{rabbit@node3,[]},{rabbit@node1,[]}]}]

rabbitmqctl force_boot
确保节点可以启动,即使它不是最后一个关闭的节点。通常情况下,当关闭整个RabbitMQ集群时,重启的第一个节点应该是最后关闭的节点,因为它可以看到其它节点所看不到的事情。但是有时会有一些异常情况出现,比如整个集群都掉电而所有节点都认为它不是最后一个关闭的。在这种情况下,可以调用rabbitmqctl force_boot命令,这就告诉节点可以无条件的启动节点。在此节点关闭后,集群的任何变化,它都会丢失。如果最后一个关闭的节点永久丢失了,那么你需要优先使用rabbitmqctl forget_cluster_node --offline命令,因为它可以确保镜像队列的正常运转。
示例如下:

[root@node2 ~]# rabbitmqctl force_boot
Forcing boot for Mnesia dir /opt/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@node2
[root@node2 ~]# rabbitmq-server –detached

rabbitmqctl sync_queue [-p vhost] {queue}
指示未同步队列queue的slave镜像可以同步master镜像行的内容。同步期间此队列会被阻塞(所有此队列的生产消费者都会被阻塞),直到同步完成。此条命令执行成功的前提是队列queue配置了镜像。注意,未同步队列中的消息被耗尽后,最终也会变成同步,此命令主要用于未耗尽的队列。
示例如下:

[root@node1 ~]# rabbitmqctl sync_queue queue
Synchronising queue 'queue' in vhost '/'

rabbitmqctl cancel_sync_queue [-p vhost] {queue}
取消队列queue同步镜像的操作。
示例如下:

[root@node1 ~]# rabbitmqctl cancel_sync_queue queue
Stopping synchronising queue 'queue' in vhost '/'

rabbitmqctl set_cluster_name {name}
设置集群名称。集群名称在客户端连接时会通报给客户端。Federation和Shovel插件也会有用到集群名称的地方。集群名称默认是集群中第一个节点的名称,通过这个命令可以重新设置。
示例如下:

[root@node1 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@node1
[{nodes,[{disc,[rabbit@node1,rabbit@node2]}]},{running_nodes,[rabbit@node2,rabbit@node1]},{cluster_name,<<"rabbit@node1">>},{partitions,[]},{alarms,[{rabbit@node2,[]},{rabbit@node1,[]}]}]
[root@node1 ~]# rabbitmqctl set_cluster_name cluster_hidden
Setting cluster name to cluster_hidden
[root@node1 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@node1
[{nodes,[{disc,[rabbit@node1,rabbit@node2]}]},{running_nodes,[rabbit@node2,rabbit@node1]},{cluster_name,<<"cluster_hidden">>},{partitions,[]},{alarms,[{rabbit@node2,[]},{rabbit@node1,[]}]}]

RaabitMQ:rabbitmqctl的几个命令相关推荐

  1. 基于命令行设置lazy-queue

    而要设置一个队列为惰性队列,只需要在声明队列时,指定x-queue-mode属性为lazy即可.可以通过命令行将一个运行中的队列修改为惰性队列: rabbitmqctl set_policy Lazy ...

  2. 【CentOS7安装RabbitMQ及常用命令】

    目录 一.概念 二.下载 三.安装 1.文件上传 2.安装文件 3.常用命令 一.概念 RabbitMQ 是一个消息中间件:它接受并转发消息.你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的 ...

  3. Ubuntu安装rabbitMQ及单机版rabbitMQ集群配置

    安装过程 1.sudo vim /etc/apt/sources.list 打开sources.list添加下面的内容在结尾处 deb http://www.rabbitmq.com/debian/ ...

  4. RabbitMQ使用手册

    1. RabbitMQ配置 1.1RabbitMQ管理命令行 # 1.服务器启动相关命令行 systemctl start|restart|stop|status rabbitmq-server # ...

  5. RabbitMQ管理(2)——用户管理

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  6. RabbitMQ管理(1)——多租户与权限

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  7. [译]RabbitMQ教程C#版 - 发布订阅

    先决条件 本教程假定RabbitMQ已经安装,并运行在localhost标准端口(5672).如果你使用不同的主机.端口或证书,则需要调整连接设置. 从哪里获得帮助 如果您在阅读本教程时遇到困难,可以 ...

  8. RabbitMQ基本概念(三)-Centos7下安装RabbitMQ3.6.1

    如果你看过前两章对RabbitMQ已经有了一定了解,现在已经摩拳擦掌,来吧动手吧! 用什么系统 本文使用的是Centos7,为了保证对linux不太熟悉的伙伴也能轻松上手(避免折在安装的路上),下面是 ...

  9. RabbitMQ 下载、安装、配置、验证_rpm版本(Linux环境)

    文章目录 一.RabbitMQ 安装准备 二.RabbitMQ 安装 2.1. 环境安装(最小化版本先安装环境) 2.2. 安装包下载 2.3. rpm安装RabbitMQ 2.4. 配置文件修改 2 ...

最新文章

  1. windows增量到linux,Beyond Compare 3在windows和linux下实现提取增量包
  2. android变量要不要附空值,android-如何在使用Parcelable时序列化空值
  3. LSGO软件技术团队爬山活动
  4. 指针使用c语言,指针的使用(C语言)
  5. C++ 通讯录设计(二)
  6. 关于推送系统设计的一些总结与思考(三)
  7. ExcelVB脚本小记(1)
  8. 编写绘图代码的技巧(二)
  9. QTTabBar v1039
  10. Spotfire 筛选器类型修改
  11. diskmark使用教程
  12. python在直方图上画折线图_Python 中 plt 画柱状图和折线图
  13. MT【91】空间余弦定理
  14. PMP之项目采购管理
  15. 唤醒手腕 - 人工智能 - 凸优化、损失函数、概率、激活函数、泛化拟合、回归分类 ···
  16. Android 刘海屏适配全攻略
  17. 微信小程序毕业设计 基于微信校园跑腿小程序系统开题报告
  18. docker安装nginx kong konga
  19. 面经手册 · 第2篇《数据结构,HashCode为什么使用31作为乘数?》
  20. 激光雷达和相机的联合标定(Camera-LiDAR Calibration)

热门文章

  1. UI标签库专题十三:JEECG智能开发平台 ckfinder(ckfinder插件标签)
  2. JEECG 移动端解决方案
  3. 2019年文章精选,分类整理,顺带聊几句时间观念
  4. 移动端跨平台开发框架对比分析
  5. Adaboost原理和实例
  6. 记录TCP协议使用Socket连接,客户端请求服务器read()阻塞问题
  7. 优化就是在和时间赛跑
  8. 服务型存储市场的现状
  9. Oracle数据库中的dual表
  10. Hammer.js分析(三)——input.js