在 RabbitMQ 中,可通过 rabbitmqctl list_channels 命令查看当前所有信道的信息。命令格式如下:
rabbitmqctl [--node <node>] [--longnames] [--quiet] list_channels [--no-table-headers] [channelinfoitem...]
参数说明:
-?, --help:显示命令的帮助信息
-n <node>, --node <node>:连接到指定的节点 <node>
-l, --longnames:使用长主机名
-t, --timeout <n>:对于支持它的命令,以秒为单位的操作超时
-q, --quiet:抑制提示性消息的输出
-s, --silent:抑制提示性消息的输出和表格标题行
-p, --vhost:对于作用域为虚拟主机的命令,要使用的虚拟主机
--formatter:如果支持,则使用替代结果格式化程序:JSON、Pretty_TABLE、TABLE、CSV、Erlang 并非所有命令都支持所有(或任何)替代格式化程序。
其中,channelinfoitem 参数用于指示哪些信息项会包含在结果集中,结果集的列顺序将匹配参数的顺序。channelinfoitem 可选值如下:
pid:与连接相关的 Erlang 进程 ID
connection:信道所属连接的 Erlang 进程 ID
name:信道的名称
number:信道的序号
user:与信道相关的用户名称
vhost:与信道相关的虚拟机 vhost
transactional:信道是否处于事务模式
confirm:信道是否处于 publisher confirm 模式
consumer_count:信道中的消费者的个数
messages_unacknowledged:己投递但是还未被 ack 的消息个数
messages_uncommitted:己接收但是还未提交事务的消息个数
acks_uncommitted:己 ack 收到但是还未提交事务的消息个数
messages_unconfirmed:己发送但是还未确认的消息个数。如果信道不处于 publisher confirm 模式下,则此值为 0
perfetch_count:新消费者的 Qos 个数限制,0 表示无上限
global_prefetch_count:整个信道的 Qos 个数限制,0 表示无上限
(1)如果没有指定 channelinfoitem 信息,那么默认会显示 pid、user、consumer_count 和 messages_ unacknowledged 这几项信息
D:\server\rabbitmq_server-3.9.11\sbin> rabbitmqctl list_channels Listing channels ... pid user consumer_count messages_unacknowledged <rabbit@hxstrive.1648180398.3389.0> root 0 0
(2)使用 -q 选项抑制提示性消息的输出
D:\server\rabbitmq_server-3.9.11\sbin> rabbitmqctl list_channels -q pid user consumer_count messages_unacknowledged <rabbit@hxstrive.1648180398.3389.0> root 0 0
(3)使用 -s 抑制提示性消息的输出和表格标题行,可以比较上面示例(2)的输出
D:\server\rabbitmq_server-3.9.11\sbin> rabbitmqctl list_channels -s <rabbit@hxstrive.1648180398.3389.0> root 0 0
(4)使用 -p 参数指定虚拟主机
D:\server\rabbitmq_server-3.9.11\sbin> rabbitmqctl list_channels -p vhost1 connection name vhost Listing channels ... connection name vhost <rabbit@hxstrive.1648180398.4001.0> 127.0.0.1:17350 -> 127.0.0.1:5672 (1) / <rabbit@hxstrive.1648180398.4014.0> 127.0.0.1:17352 -> 127.0.0.1:5672 (1) vhost1 <rabbit@hxstrive.1648180398.4027.0> 127.0.0.1:17353 -> 127.0.0.1:5672 (1) vhost2 D:\server\rabbitmq_server-3.9.11\sbin> rabbitmqctl list_channels -p vhost2 connection name vhost Listing channels ... connection name vhost <rabbit@hxstrive.1648180398.4001.0> 127.0.0.1:17350 -> 127.0.0.1:5672 (1) / <rabbit@hxstrive.1648180398.4014.0> 127.0.0.1:17352 -> 127.0.0.1:5672 (1) vhost1 <rabbit@hxstrive.1648180398.4027.0> 127.0.0.1:17353 -> 127.0.0.1:5672 (1) vhost2