RabbitMQ 教程

查看队列状态

RabbitMQ 中使用命令查看指定虚拟主机(vhost)中所有队列的状态信息。如果没有指定 [-p vhost] 参数,则返回“/”默认虚拟主机的队列详细信息,通过 -p 参数可以覆盖此默认值。

我们还可以使用该命令提供的互斥选项,按状态或位置过滤显示的队列信息。

命令格式如下:

rabbitmqctl list_queues [-p vhost] [--offline | --online | --local] [queueinfoitem ...]

参数说明:

  • --offline:仅列出当前不可用的那些持久队列(更具体地说,它们的领导节点不可用)

  • --online:用来列出当前可用的队列(它们的领导节点是可用的)

  • --local:仅列出领导副本位于当前节点上的那些队列

queueinfoitem 参数用于指示哪些队列的信息项会包含在结果集中,结果集的列顺序将匹配参数的顺序。queueinfoitem 可以选值如下:

  • name:队列名称

  • durable:队列是否持久化

  • auto_delete:队列是否自动删除

  • arguments:队列的参数

  • policy:应用到队列上的策略名称

  • pid:队列关联的 Erlang 进程的 ID

  • owner_pid:处理排他队列连接的 Erlang 进程 ID。如果此队列是非排他的,此值将为空。

  • exclusive:队列是否是排他的

  • exclusive_consumer_pid:订阅到此排他队列的消费者相关的信道关联的 Erlang 进程 ID。如果此队列是非排他的,此值将为空

  • exclusive_consumer_tag:订阅到此排他队列的消费者的 consumerTag。如果此队列是非排他的,此值将为空。

  • messages_ready:准备发送给客户端的消息个数

  • messages_unacknowledged:发送给客户端但尚未应答的消息个数

  • messages:准备发送给客户端和未应答消息的总和

  • messages_ready_ram:驻留在内存中 messages_ready 的消息个数

  • messages_unacknowledged_ram:驻留在内存中 messages_unacknowledged 的消息个数

  • messages_ram:驻留在内存中的消息总数

  • messages_persistent:队列中持久化消息的个数。对于非持久化队列来说总是 0。

  • messages_bytes:队列中所有消息的大小总和。这里不包括消息属性或者任何其他开销。

  • messages_bytes_ready:准备发送给客户端的消息的大小总和。

  • messages_bytes_unacknowledged:发送给客户端但尚未应答的消息的大小总和。

  • messages_bytes_ram:驻留在内存中的 messages_bytes。

  • messages_bytes_persistent:队列中持久化的 messages_bytes

  • disk_reads:从队列启动开始,己从磁盘中读取该队列的消息总次数。

  • disk_writes:从队列启动开始,己向磁盘队列写消息的总次数。

  • consumer:消费者数目。

  • consumer_utilisation:队列中的消息能够立刻投递给消费者的比率,介于 0 和 1 之间。这个受网络拥塞或者 Basic.Qos 的影响而小于 1。

  • memory:与队列相关的 Erlang 进程所消耗的内存字节数,包括栈、堆及内部结构

  • slave_pids:如果队列是镜像的,列出所有 slave 镜像的 pid。

  • synchronised_slave_pids:如果队列是镜像的,列出所有己经同步的 slave 镜像的 pid。

  • state:队列状态。正常情况下是 running;如果队列正常同步数据可能会有 “{syncing, MsgCount}” 的状态;如果队列所在的节点掉线了,则队列显示状态为 down(此时大多数的 queueinfoitems 也将不可用)。

示例

(1)如果不指定 queueinfoitems,则默认只列出队列名和消息个数

D:\server\rabbitmq_server-3.9.11\sbin> rabbitmqctl list_queues
Timeout: 60.0 seconds ...
Listing queues for vhost / ...
name    messages
queue_ExchangeDlx2      0
queue-SenderAckDemo2    0
unroutedQueue   0
queue-SenderAckDemo1    0

(2)手动指定 queueinfoitems 信息,列出队列名称、是否持久化、是否自动删除和参数信息

D:\server\rabbitmq_server-3.9.11\sbin> rabbitmqctl list_queues name durable auto_delete arguments
Timeout: 60.0 seconds ...
Listing queues for vhost / ...
name    durable auto_delete     arguments
queue_ExchangeDlx2      true    false   [{"x-dead-letter-exchange","exchange_ExchangeDlx2_DLX"}]
queue-SenderAckDemo2    true    false   []
unroutedQueue   true    false   []
queue-SenderAckDemo1    true    false   []
queue-SenderAckDemo3    true    false   []

(3)使用 -p 参数手动指定虚拟机

D:\server\rabbitmq_server-3.9.11\sbin> rabbitmqctl list_queues -p vhost1
Timeout: 60.0 seconds ...
Listing queues for vhost vhost1 ...
name    messages
queue-hxstrive-5        0
queue-hxstrive-1        0
queue-hxstrive-4        0
queue-hxstrive-3        0
说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号