RabbitMQ 教程

查看消费者状态

在 RabbitMQ 中,可以使用命令查看消费者状态信息。每行将显示由制表符分隔的己订阅队列的名称、相关信道的进程标识、consumerTag、是否需要消费端确认、prefetch_count 及参数列表这些信息。命令格式如下:

rabbitmqctl [--node <node>] [--longnames] [--quiet] list_consumers [--vhost <vhost>] [--no-table-headers] [<columninfoitem> ...] [--timeout <timeout>]

参数说明:

  • -?, --help:显示命令的帮助信息

  • -n <node>, --node <node>:连接到指定的节点 <node>

  • -l, --longnames:使用长主机名

  • -t, --timeout <n>:对于支持它的命令,以秒为单位的操作超时

  • -q, --quiet:抑制提示性消息的输出

  • -s, --silent:抑制提示性消息的输出和表格标题行

  • -p, --vhost:对于作用域为虚拟主机的命令,要使用的虚拟主机

  • --formatter:如果支持,则使用替代结果格式化程序:JSON、Pretty_TABLE、TABLE、CSV、Erlang 并非所有命令都支持所有(或任何)替代格式化程序。

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

  • ack_required:表示消费消息时,channel.basicConsume() 中是否自动提交,true 表示开启了自动提交,false 表示手动提交

  • active:消费者是否活跃,即消费者是否可以从队列中获取消息。 当为队列启用单个活动消费者时,一次只有一个消费者处于活动状态。当队列禁用单个活动消费者时,消费者默认处于活动状态。 对于仲裁队列,消费者可能因为其所属节点被怀疑关闭而处于非活动状态。

  • activity_status:活动状态

  • arguments:信道参数

  • channel_pid:信道的 Erlang 进程 ID

  • consumer_tag:消费者的标签

  • prefetch_count:服务器将传递的最大消息数,如果不受限制,则为0

  • queue_name:队列名称

示例

(1)如果没有指定 columninfoitem  参数信息,默认将显示 queue_name、channel_pid、consumer_tag、ack_required、prefetch_count、active 和 arguments 信息。

D:\server\rabbitmq_server-3.9.11\sbin> rabbitmqctl list_consumers
Listing consumers in vhost / ...
queue_name      channel_pid     consumer_tag    ack_required    prefetch_count  active  arguments
amq.gen-PbDpbBKj3_nD6SRaG1t-2g  <rabbit@hxstrive.1648180398.4721.0>     amq.ctag-pkf7lpWvDUlSljQ-J8duRg true true     []

(2)手动指定 columninfoitem  参数信息,显示消费者的 queue_name、ack_required

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