如何在RabbitMQ集群环境中通过API/CLI识别主节点
如何在RabbitMQ集群中识别主节点(API/CLI方式)
你当前调用的/api/vhosts接口仅返回虚拟主机相关信息,无法获取集群主节点数据,以下是两种可行的识别方式:
CLI方式
查看集群全局主节点
使用RabbitMQ自带的rabbitmqctl工具执行集群状态查询:
rabbitmqctl cluster_status
执行后查看输出:
Cluster name对应的节点即为集群的主节点(通常是第一个创建集群的磁盘节点)Disk Nodes列表中的节点是持久化节点,集群主节点一定属于此类
查看镜像队列的主节点
如果需要确认特定镜像队列的主节点,执行:
rabbitmqctl list_queues name master_node
输出中master_node列对应的节点就是该队列的主节点。
API方式
查询集群全局主节点
调用/api/nodes接口获取所有节点信息,其中包含is_leader字段(布尔值),值为true的节点即为集群主节点:
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/nodes
返回的JSON数据中,还可通过type字段筛选磁盘节点(值为disc),主节点必然是磁盘节点。
查询特定队列的主节点
若需查看单个队列的主节点,调用/api/queues/{vhost}/{queue_name}接口,返回数据中的owner_node字段即为该队列的主节点:
# 替换{your_vhost}和{your_queue}为实际值 curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/queues/{your_vhost}/{your_queue}
内容的提问来源于stack exchange,提问作者Vishwa
相关产品推荐
相关产品推荐

