跳至主内容
版本:4.2

rabbitmqctl.8

名称

rabbitmqctl用于管理 RabbitMQ 节点的工具

概要

rabbitmqctl[-q] [-s] [-l] [-n 节点] [-t 超时] 命令 [命令_选项]

描述

RabbitMQ 是一个开源的、支持多协议的消息代理。

rabbitmqctl 是管理 RabbitMQ 服务器节点的主要命令行工具,与 rabbitmq-diagnosticsrabbitmq-upgrade 等工具一起使用。

它通过连接到专用 CLI 工具通信端口上的目标 RabbitMQ 节点,并使用共享密钥(称为 cookie 文件)进行身份验证来执行所有操作。

如果连接失败、目标节点未运行或 rabbitmqctl 无法成功对目标节点进行身份验证,则会显示诊断信息。

要了解更多信息,请参阅 RabbitMQ CLI 工具指南

选项

-n 节点

默认节点是 "rabbit@target-hostname",其中 target-hostname 是本地主机。在名为 "myserver.example.com" 的主机上,节点名称通常是 "rabbit@myserver"(除非 RABBITMQ_NODENAME 已被覆盖,在这种情况下,您需要使用

--longnames

)。"hostname -s" 的输出通常是 "@" 符号后应使用的正确主机名。有关配置 RabbitMQ 节点的信息,请参阅 rabbitmq-server(8)

-q, --quiet

选择安静输出模式。在安静模式下,信息性消息会减少。

-s, --silent

选择静默输出模式。在静默模式下,信息性消息会减少,并且表格标题会被抑制。

--no-table-headers

不输出表格数据的标题。

--dry-run

不运行命令。仅打印信息性消息。

-t 超时, --timeout 超时

操作超时(秒)。并非所有命令都支持超时。默认值为 infinity

-l, --longnames

当集群配置为使用长(FQDN)节点名称时,必须指定此选项。要了解更多信息,请参阅 RabbitMQ 集群指南

用于向目标节点进行身份验证的共享密钥。优先使用本地文件或 RABBITMQ_ERLANG_COOKIE 环境变量,而不是在命令行中指定此选项。要了解更多信息,请参阅 RabbitMQ CLI 工具指南

命令

help [-l] [command_name]

打印所有可用命令的用法。

-l, --list-commands

仅列出命令用法,不含参数说明。
command_name
打印指定命令的用法。

version

显示 CLI 工具的版本。

Nodes

await_startup

等待目标节点上的 RabbitMQ 应用程序启动。

例如,等待 RabbitMQ 应用程序启动

rabbitmqctl await_startup

reset

将 RabbitMQ 节点恢复到原始状态。

将节点从其所属的任何集群中移除,从管理数据库中移除所有数据(如配置的用户和 vhost),并删除所有持久化消息。

为了使 resetforce_reset 成功,RabbitMQ 应用程序必须已停止,例如使用 stop_app

例如,重置 RabbitMQ 节点

rabbitmqctl reset

rotate_logs

指示 RabbitMQ 节点执行内部日志轮换。

日志轮换根据配置文件中指定的日志设置执行。轮换操作是异步的,不能保证在命令返回之前完成。

请注意,在进行外部日志轮换(例如使用 logrotate(8))时,无需调用此命令。

例如,执行初始日志轮换

rabbitmqctl rotate_logs

shutdown

关闭节点,包括 RabbitMQ 和其运行时。此命令是阻塞的,将在运行时进程退出后返回。如果 RabbitMQ 停止失败,将返回非零退出代码。此命令会推断目标节点的 OS PID,因此只能用于关闭运行在同一主机上的节点(或广义上,同一操作系统中的节点,例如同一虚拟机或容器中)。

与 stop 命令不同,shutdown 命令

  • 不需要 pid_file 来等待运行时进程退出。

  • 如果 RabbitMQ 节点未运行,则返回非零退出代码。

例如,这将关闭运行默认节点名称的本地 RabbitMQ 节点。

rabbitmqctl shutdown

start_app

启动 RabbitMQ 应用程序。

此命令通常在执行其他需要停止 RabbitMQ 应用程序的管理操作后运行,例如 reset

例如,指示 RabbitMQ 节点启动 RabbitMQ 应用程序

rabbitmqctl start_app

stop [pid_file]

停止运行 RabbitMQ 的 Erlang 节点。要重新启动节点,请遵循 安装指南 中“运行服务器”的说明。

如果指定了 pid_file,还将等待其中指定的进程终止。有关此文件的详细信息,请参阅 wait 命令的说明。

例如,指示 RabbitMQ 节点终止

rabbitmqctl stop

stop_app

停止 RabbitMQ 应用程序,但保持运行时(Erlang VM)运行。

此命令通常在执行其他需要停止 RabbitMQ 应用程序的管理操作之前运行,例如 reset

例如,指示 RabbitMQ 节点停止 RabbitMQ 应用程序

rabbitmqctl stop_app

wait pid_file, wait --pid pid

等待 RabbitMQ 应用程序启动。

此命令将等待 RabbitMQ 应用程序在节点上启动。如果指定了 pidfile,它将等待 pid 文件被创建,然后等待 pid 文件中指定或 --pid 参数指定的进程,最后等待该进程中的 RabbitMQ 应用程序启动。如果进程终止而未启动 RabbitMQ 应用程序,则命令将失败。

如果在 --timeout 内未创建指定的 pidfile 或未启动 erlang 节点,则命令将失败。默认超时为 10 秒。

rabbitmq-server(8) 脚本创建合适的 pid 文件。默认情况下,该文件位于 Mnesia 目录中。修改 RABBITMQ_PID_FILE 环境变量可更改其位置。

例如,此命令将在 RabbitMQ 节点启动后返回。

rabbitmqctl wait /var/run/rabbitmq/pid

Cluster management

await_online_nodes count

等待 count 个节点加入集群。

例如,等待两个 RabbitMQ 节点启动。

rabbitmqctl await_online_nodes 2

change_cluster_node_type type

更改集群节点的类型。

type 必须是以下之一:

节点必须停止才能成功执行此操作,并且在将节点转换为 RAM 节点时,该节点不能是集群中唯一的磁盘节点。

例如,此命令将 RAM 节点转换为磁盘节点。

rabbitmqctl change_cluster_node_type disc

cluster_status

显示集群中的所有节点,按节点类型分组,并显示当前正在运行的节点。

例如,此命令显示集群中的节点。

rabbitmqctl cluster_status

force_boot

确保节点下次能够启动,即使它不是最后一个关闭的节点。

通常,当您完全关闭 RabbitMQ 集群时,第一个重新启动的节点应该是最后一个关闭的节点,因为它可能看到了其他节点未曾见过的事件。但有时这是不可能的:例如,如果整个集群断电,则所有节点都可能认为它们不是最后一个关闭的节点。

在这种情况下,您可以在节点关闭时调用 force_boot。这将告知节点在下次启动时无条件启动。在此节点关闭后对集群进行的任何更改都将丢失。

如果最后一个关闭的节点永久丢失,则您应该使用 forget_cluster_node --offline 而不是此命令,因为它将确保在已丢失节点上领导者副本的镜像队列将被提升。

例如,这将强制节点在下次启动时不要等待其他节点。

rabbitmqctl force_boot

force_reset

强制将 RabbitMQ 节点恢复到原始状态。

force_reset 命令与 reset 命令的区别在于,它无条件地重置节点,而不考虑当前管理数据库的状态和集群配置。仅当数据库或集群配置已损坏时,才应将其作为最后手段使用。

force_reset 命令已弃用。当使用 Mnesia 元数据存储时,它仍然可用。在使用 Khepri 元数据存储时,它不受支持。

为了使 resetforce_reset 成功,RabbitMQ 应用程序必须已停止,例如使用 stop_app

例如,重置 RabbitMQ 节点

rabbitmqctl force_reset

forget_cluster_node [--offline]

--offline

允许从离线节点移除节点。这仅在所有节点都离线且最后一个关闭的节点无法联机,从而阻止整个集群启动的情况下有用。在任何其他情况下都不应使用它,因为它可能导致不一致。

远程移除集群节点。要移除的节点必须离线,而我们要从中移除的节点必须在线,除非使用 --offline 标志。

当使用 --offline 标志时,rabbitmqctl 不会像正常那样尝试连接到节点;相反,它将暂时成为该节点,以便进行更改。如果节点无法正常启动,这很有用。在这种情况下,该节点将成为集群元数据(例如,存在的队列)的规范来源,即使它以前不是。因此,如果可能,您应该在最后一个关闭的节点上使用此命令。

例如,此命令将节点 "rabbit@stringer" 从节点 "hare@mcnulty" 中移除。

rabbitmqctl -n hare@mcnulty forget_cluster_node rabbit@stringer

join_cluster seed-node [--ram]

seed-node
现有集群成员(种子节点),用于集群。

--ram

如果提供,节点将作为 RAM 节点加入集群。不建议使用 RAM 节点。仅在您确切知道为什么需要使用它们时才使用。

指示节点成为指定节点所在集群的成员。在集群化之前,节点会被重置,因此在使用此命令时要小心。为了使此命令成功,RabbitMQ 应用程序必须已停止,例如使用 stop_app

集群节点可以是两种类型:磁盘节点或 RAM 节点。磁盘节点在 RAM 和磁盘上复制数据,从而在节点发生故障和从全局事件(如所有节点的断电)恢复时提供冗余。RAM 节点仅在 RAM 中复制数据(队列内容除外,如果队列是持久化的或太大而无法放入内存,则可以保留在磁盘上),主要用于可伸缩性。RAM 节点仅在管理资源时(例如,添加/删除队列、交换器或绑定)性能更高。集群始终必须至少有一个磁盘节点,并且通常应该有一个以上的节点。

默认情况下,该节点将是磁盘节点。如果您想创建 RAM 节点,请提供 --ram 标志。

执行 join_cluster 命令后,每当在当前节点上启动 RabbitMQ 应用程序时,它都会尝试连接到节点在关闭时所在的集群中的节点。

要离开集群,请reset该节点。您也可以使用 forget_cluster_node 命令远程移除节点。

例如,此命令指示 RabbitMQ 节点作为 ram 节点加入 "hare@elena" 所属的集群。

rabbitmqctl join_cluster hare@elena --ram

要了解更多信息,请参阅 RabbitMQ 集群指南

User Management

请注意,所有用户管理命令 rabbitmqctl 只能管理内部 RabbitMQ 数据库中的用户。来自任何备用身份验证后端(如 LDAP)的用户无法使用这些命令进行检查或管理。rabbitmqctl

add_user username password

username
要创建的用户的名称。
password
创建的用户登录代理时将使用的密码。

例如,此命令指示 RabbitMQ 代理创建一个(非管理员)用户 "janeway",其(初始)密码为 "changeit"。

rabbitmqctl add_user janeway changeit

authenticate_user username password

username
用户的名称。
password
用户的密码。

例如,此命令指示 RabbitMQ 代理使用密码 "verifyit" 对用户 "janeway" 进行身份验证。

rabbitmqctl authenticate_user janeway verifyit

change_password username newpassword

username
要更改密码的用户的名称。
newpassword
用户的新密码。

例如,此命令指示 RabbitMQ 代理将用户 "janeway" 的密码更改为 "newpass"。

rabbitmqctl change_password janeway newpass

clear_password username

username
要清除密码的用户的名称。

例如,此命令指示 RabbitMQ 代理清除用户 "janeway" 的密码。

rabbitmqctl clear_password janeway

现在此用户无法使用密码登录(但可能可以通过例如 SASL EXTERNAL 进行登录,如果已配置)。

hash_password plaintext

plaintext
要哈希的明文密码。

根据当前配置的密码哈希算法哈希明文密码。

delete_user username

username
要删除的用户的名称。

例如,此命令指示 RabbitMQ 代理删除用户 "janeway"。

rabbitmqctl delete_user janeway

list_users

列出用户。每行结果将包含用户名,后跟该用户设置的标签列表。

例如,此命令指示 RabbitMQ 代理列出所有用户。

rabbitmqctl list_users

set_user_tags username [tag ...]

username
要设置标签的用户的名称。
tag
要设置的零个、一个或多个标签。任何现有标签都将被移除。

例如,此命令指示 RabbitMQ 代理确保用户 "janeway" 是管理员。

rabbitmqctl set_user_tags janeway administrator

当用户使用消息协议进行身份验证时,这没有影响,但可用于允许用户在用户通过其他方式(例如使用管理插件)登录时管理用户、虚拟主机和权限。

此命令指示 RabbitMQ 代理从用户 "janeway" 中移除所有标签。

rabbitmqctl set_user_tags janeway

Access control

clear_permissions [-p vhost] username

vhost
要禁止用户访问的虚拟主机的名称,默认为 "/"。
username
要禁止访问指定虚拟用户的用户名。

设置用户权限。

例如,此命令指示 RabbitMQ 代理禁止用户 "janeway" 访问名为 "my-vhost" 的虚拟主机。

rabbitmqctl clear_permissions -p my-vhost janeway

clear_topic_permissions [-p vhost] username [exchange]

vhost
要清除主题权限的虚拟主机的名称,默认为 "/"。
username
要清除指定虚拟主机主题权限的用户名。
exchange
要清除主题权限的主题交换器的名称,默认为给定用户具有主题权限的所有主题交换器。

清除用户主题权限。

例如,此命令指示 RabbitMQ 代理移除用户 "janeway" 在名为 "my-vhost" 的虚拟主机中对主题交换器 "amq.topic" 的主题权限。

rabbitmqctl clear_topic_permissions -p my-vhost janeway amq.topic

list_permissions [-p vhost]

vhost
要列出已授予访问权限的用户及其权限的虚拟主机的名称。默认为 "/"。

列出虚拟主机中的权限。

例如,此命令指示 RabbitMQ 代理列出已授予访问名为 "my-vhost" 的虚拟主机的所有用户,以及他们在该虚拟主机中对资源的资源操作权限。请注意,空字符串表示未授予任何权限。

rabbitmqctl list_permissions -p my-vhost

list_topic_permissions [-p vhost]

vhost
要列出用户主题权限的虚拟主机的名称。默认为 "/"。

列出虚拟主机中的主题权限。

例如,此命令指示 RabbitMQ 代理列出已授予主题权限的名为 "my-vhost" 的虚拟主机中的所有用户:

rabbitmqctl list_topic_permissions -p my-vhost

list_user_permissions username

username
要列出权限的用户的名称。

列出用户权限。

例如,此命令指示 RabbitMQ 代理列出已授予用户 "janeway" 访问权限的所有虚拟主机,以及用户在这些虚拟主机中对资源的权限。

rabbitmqctl list_user_permissions janeway

list_user_topic_permissions username

username
要列出主题权限的用户的名称。

列出用户主题权限。

例如,此命令指示 RabbitMQ 代理列出已授予用户 "janeway" 访问权限的所有虚拟主机,以及用户在这些虚拟主机中的主题权限。

rabbitmqctl list_user_topic_permissions janeway

list_vhosts [vhostinfoitem ...]

列出虚拟主机。

use vhostinfoitem 参数用于指示要在结果中包含哪些虚拟主机信息项。结果中的列顺序将与参数顺序匹配。vhostinfoitem 可以接受以下列表中的任何值:

name

虚拟主机的名称,非 ASCII 字符已根据 C 语言进行转义。

tracing

此虚拟主机是否启用了跟踪。

default_queue_type

此 vhost 的默认队列类型。

description

虚拟主机描述。

tags

虚拟主机标签。

cluster_state

虚拟主机状态:nodedown(节点关闭)、running(运行中)、stopped(已停止)。

如果未指定任何 vhostinfoitem s,则显示 vhost 名称。

例如,此命令指示 RabbitMQ 代理列出所有虚拟主机。

rabbitmqctl list_vhosts name tracing

set_permissions [-p vhost] user conf write read

vhost
要授予用户访问权限的虚拟主机的名称,默认为 "/"。
user
要授予访问指定虚拟用户的用户名。
conf
匹配资源名称的正则表达式,用户将获得这些资源的配置权限。
write
匹配资源名称的正则表达式,用户将获得这些资源的写入权限。
read
匹配资源名称的正则表达式,用户将获得这些资源的读取权限。

设置用户权限。

例如,此命令指示 RabbitMQ 代理授予用户 "janeway" 访问名为 "my-vhost" 的虚拟主机,并对所有以 "janeway-" 开头的资源授予配置权限,以及对所有资源授予写入和读取权限。

rabbitmqctl set_permissions -p my-vhost janeway "^janeway-." "." ".*"

set_permissions_globally username conf write read

username
要授予访问指定虚拟用户的用户名。
conf
匹配资源名称的正则表达式,用户将获得这些资源的配置权限。
write
匹配资源名称的正则表达式,用户将获得这些资源的写入权限。
read
匹配资源名称的正则表达式,用户将获得这些资源的读取权限。

在所有 vhost 中设置用户权限。

例如,此命令指示 RabbitMQ 代理授予用户 "janeway" 访问所有虚拟主机,并对所有以 "janeway-" 开头的资源授予配置权限,以及对所有资源授予写入和读取权限。

rabbitmqctl set_permissions_globally janeway "^janeway-." "." ".*"

set_topic_permissions [-p vhost] user exchange write read

vhost
要授予用户访问权限的虚拟主机的名称,默认为 "/"。
user
在目标虚拟主机中,权限适用的用户的名称。
exchange
将应用授权检查的主题交换器的名称。
write
匹配已发布消息路由键的正则表达式。
read
匹配已消耗消息路由键的正则表达式。

设置用户主题权限。

例如,此命令指示 RabbitMQ 代理允许用户 "janeway" 在 "my-vhost" 虚拟主机中通过 "amp.topic" 交换器发布和消耗路由键以 "janeway-" 开头的消息。

rabbitmqctl set_topic_permissions -p my-vhost janeway amq.topic "^janeway-." "^janeway-."

主题权限支持以下变量的变量扩展:username、vhost 和 client_id。请注意,仅在使用 MQTT 时才扩展 client_id。通过使用 "^{username}-.*" 可以使前面的示例更通用。

rabbitmqctl set_topic_permissions -p my-vhost janeway amq.topic "^{username}-." "^{username}-."

监控、可观测性和健康检查

environment

显示每个运行应用程序的应用程序环境中的每个变量的名称和值。

list_bindings [-p vhost] [bindinginfoitem ...]

返回绑定详细信息。默认情况下,返回 "/" 虚拟主机的绑定。可以使用 -p 标志覆盖此默认值。

use bindinginfoitem 参数用于指示要在结果中包含哪些绑定信息项。结果中的列顺序将与参数顺序匹配。bindinginfoitem 可以接受以下列表中的任何值:

source_name

绑定到的消息源的名称。非 ASCII 字符已根据 C 语言进行转义。

source_kind

绑定到的消息源的类型。目前始终是 exchange。非 ASCII 字符已根据 C 语言进行转义。

destination_name

绑定到的消息目标的名称。非 ASCII 字符已根据 C 语言进行转义。

destination_kind

绑定到的消息目标的类型。非 ASCII 字符已根据 C 语言进行转义。

routing_key

绑定的路由键,非 ASCII 字符已根据 C 语言进行转义。

arguments

绑定的参数。

如果未指定任何 bindinginfoitem s,则显示以上所有项。

例如,此命令显示名为 "my-vhost" 的虚拟主机中绑定的交换器名称和队列名称。

rabbitmqctl list_bindings -p my-vhost exchange_name queue_name

list_channels [channelinfoitem ...]

返回所有当前通道的信息,这些通道是执行大多数 AMQP 命令的逻辑容器。这包括属于普通 AMQP 连接的通道以及由各种插件和其他扩展创建的通道。

use channelinfoitem 参数用于指示要在结果中包含哪些通道信息项。结果中的列顺序将与参数顺序匹配。channelinfoitem 可以接受以下列表中的任何值:

pid

与连接关联的 Erlang 进程的 ID。

connection

通道所属连接的 Erlang 进程的 ID。

name

通道的可读名称。

number

通道在连接内的唯一标识符。

user

与通道关联的用户名。

vhost

通道运行的虚拟主机。

transactional

如果通道处于事务模式,则为 true,否则为 false。

confirm

如果通道处于确认模式,则为 true,否则为 false。

consumer_count

通过通道检索消息的逻辑 AMQP 消费者的数量。

messages_unacknowledged

已通过此通道传递但尚未确认的消息数量。

messages_uncommitted

尚未提交的事务中收到的消息数量。

acks_uncommitted

尚未提交的事务中收到的确认数量。

messages_unconfirmed

尚未确认已发布的消息数量。在非确认模式的通道上,此值为 0。

prefetch_count

新消费者的 QoS prefetch 限制,0 表示无限制。

如果未指定任何 channelinfoitem s,则假定为 pid、user、consumer_count 和 messages_unacknowledged。

例如,此命令显示每个通道的连接进程和未确认消息的数量。

rabbitmqctl list_channels connection messages_unacknowledged

list_ciphers

列出编码命令支持的密码套件。

例如,此命令指示 RabbitMQ 代理列出所有编码命令支持的密码套件。

rabbitmqctl list_ciphers

list_connections [connectioninfoitem ...]

返回 TCP/IP 连接统计信息。

use connectioninfoitem 参数用于指示要在结果中包含哪些连接信息项。结果中的列顺序将与参数顺序匹配。connectioninfoitem 可以接受以下列表中的任何值:

pid

与连接关联的 Erlang 进程的 ID。

name

连接的可读名称。

port

服务器端口。

host

通过反向 DNS 获取的服务器主机名,或者如果反向 DNS 失败或关闭,则为其 IP 地址。

peer_port

对端端口。

peer_host

通过反向 DNS 获取的对端主机名,或者如果反向 DNS 失败或未启用,则为其 IP 地址。

ssl

指示连接是否使用 SSL 保护的布尔值。

ssl_protocol

SSL 协议(例如 "tlsv1")。

ssl_key_exchange

SSL 密钥交换算法(例如 "rsa")。

ssl_cipher

SSL 密码算法(例如 "aes_256_cbc")。

ssl_hash

SSL 哈希函数(例如 "sha")。

peer_cert_subject

对端的 SSL 证书主题,采用 RFC4514 格式。

peer_cert_issuer

对端的 SSL 证书颁发者,采用 RFC4514 格式。

peer_cert_validity

对端 SSL 证书有效的时期。

state

连接状态;以下之一:

  • starting

  • tuning

  • opening

  • running

  • flow

  • blocking

  • blocked

  • closing

  • closed

channels

使用该连接的通道数量。

protocol

使用的 AMQP 协议版本——目前是以下之一:

  • {0,9,1}

  • {0,8,0}

请注意,如果客户端请求 AMQP 0-9 连接,我们将其视为 AMQP 0-9-1。

auth_mechanism

使用的 SASL 身份验证机制,例如 "PLAIN"。

user

与连接关联的用户名。

vhost

虚拟主机名,非 ASCII 字符已根据 C 语言进行转义。

timeout

连接超时 / 协商的心跳间隔(秒)。

frame_max

最大帧大小(字节)。

channel_max

此连接上的最大通道数。

client_properties

客户端在连接建立期间传输的信息属性。

recv_oct

接收的字节数。

recv_cnt

接收的数据包数。

send_oct

发送的字节数。

send_cnt

发送的数据包数。

send_pend

发送队列大小。

connected_at

建立此连接的日期和时间(作为时间戳)。

如果未指定任何 connectioninfoitem s,则显示 user、peer host、peer port、flow control 后的时间以及内存块状态。

例如,此命令显示每个连接的发送队列大小和服务器端口。

rabbitmqctl list_connections send_pend port

list_consumers [-p vhost]

列出消费者,即对队列消息流的订阅。每行打印的内容以制表符分隔,显示订阅的队列名称、创建和管理订阅的通道进程 ID、在通道内唯一标识订阅的消费者标签、一个布尔值,指示是否需要为传递给此消费者的消息进行确认,一个整数,指示预取限制(0 表示“无”),以及此消费者的任何参数。

list_exchanges [-p vhost] [exchangeinfoitem ...]

返回交换器详细信息。如果省略 -p 标志,则返回 "/" 虚拟主机的交换器详细信息。可以使用 -p 标志覆盖此默认值。

use exchangeinfoitem 参数用于指示要在结果中包含哪些交换器信息项。结果中的列顺序将与参数顺序匹配。exchangeinfoitem 可以接受以下列表中的任何值:

name

交换器的名称,非 ASCII 字符已根据 C 语言进行转义。

type

交换器类型,例如:

  • direct

  • topic

  • headers

  • fanout

durable

交换器是否在服务器重启后仍然存在。

auto_delete

交换器在不再使用时是否会被自动删除。

internal

交换器是否为内部交换器,即客户端不能直接发布到它。

arguments

交换器的参数。

policy

应用于该交换器的策略名称。

如果未指定任何 exchangeinfoitem s,则显示交换器名称和类型。

例如,此命令显示名为 "my-vhost" 的虚拟主机中每个交换器的名称和类型。

rabbitmqctl list_exchanges -p my-vhost name type

list_hashes

列出编码命令支持的哈希函数。

例如,此命令指示 RabbitMQ 代理列出所有编码命令支持的哈希函数。

rabbitmqctl list_hashes

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

返回队列详细信息。如果省略 -p 标志,则返回 "/" 虚拟主机的队列详细信息。可以使用 -p 标志覆盖此默认值。

可以通过其状态或位置使用以下互斥选项之一来过滤显示的队列:

--offline

仅列出当前不可用的持久化队列(更具体地说,是它们的领导者节点不可用)。

--online

列出当前可用的队列(它们的领导者节点可用)。

--local

仅列出其领导者副本位于当前节点的队列。

use queueinfoitem 参数用于指示要在结果中包含哪些队列信息项。结果中的列顺序将与参数顺序匹配。queueinfoitem 可以接受以下列表中的任何值:

name

队列的名称,非 ASCII 字符已根据 C 语言进行转义。

durable

队列是否在服务器重启后仍然存在。

auto_delete

队列在不再使用时是否会被自动删除。

arguments

队列的参数。

policy

应用于该队列的用户策略名称。

operator_policy

应用于该队列的操作员策略名称。

effective_policy_definition

队列的有效策略定义:用户和操作员策略定义合并。

pid

队列的 Erlang 进程标识符。

owner_pid

独占拥有队列的连接的 Erlang 进程 ID。如果队列不是独占的,则为空。

exclusive

如果队列是独占的(即具有 owner_pid),则为 true,否则为 false。

exclusive_consumer_pid

订阅该队列的独占消费者的通道表示的 Erlang 进程 ID。如果没有独占消费者,则为空。

exclusive_consumer_tag

订阅该队列的独占消费者的消费者标签。如果没有独占消费者,则为空。

messages_ready

准备交付给客户端的消息数量。

messages_unacknowledged

已交付给客户端但尚未确认的消息数量。

messages

ready 和 unacknowledged 消息的总和(队列深度)。

messages_ready_ram

messages_ready 中驻留在 RAM 中的消息数量。

messages_unacknowledged_ram

messages_unacknowledged 中驻留在 RAM 中的消息数量。

messages_ram

驻留在 RAM 中的消息总数。

messages_persistent

队列中的持久化消息总数(对于临时队列始终为 0)。

message_bytes

队列中所有消息体的大小总和。这不包括消息属性(包括标头)或任何开销。

message_bytes_ready

类似于 message_bytes,但仅计算准备交付给客户端的消息。

message_bytes_unacknowledged

类似于 message_bytes,但仅计算已交付给客户端但尚未确认的消息。

message_bytes_ram

类似于 message_bytes,但仅计算当前驻留在 RAM 中的消息。

message_bytes_persistent

类似于 message_bytes,但仅计算持久化消息。

head_message_timestamp

队列中第一条消息的时间戳属性(如果存在)。消息的时间戳仅在它们处于分页状态时显示。

disk_reads

自启动以来,此队列从磁盘读取消息的总次数。

disk_writes

自启动以来,此队列将消息写入磁盘的总次数。

consumers

消费者数量。

consumer_utilisation

队列能够立即将消息传递给消费者的时间比例(介于 0.0 和 1.0 之间)。如果消费者受网络拥塞或预取计数限制,则此值可能小于 1.0。

memory

运行时为队列分配的内存字节数,包括堆栈、堆和内部结构。

mirror_pids

如果队列是镜像的,则列出镜像(跟随副本)的 ID。要了解更多信息,请参阅 RabbitMQ 镜像指南

synchronised_mirror_pids

如果队列是镜像的,则给出与领导者副本同步的镜像(跟随副本)的 ID。要了解更多信息,请参阅 RabbitMQ 镜像指南

state

队列的状态。通常是 "running"(运行中),但如果是 "syncing"(同步中,message_count),则表示队列正在同步。

位于当前关闭的集群节点上的队列将显示状态为 "down"(已关闭)(大多数其他 queueinfoitem 将不可用)。

type

队列类型,以下之一:quorum、stream、classic。

如果未指定任何 queueinfoitem s,则显示队列名称和深度。

例如,此命令显示名为 "my-vhost" 的虚拟主机中每个队列的深度和消费者数量。

rabbitmqctl list_queues -p my-vhost messages consumers

list_unresponsive_queues [--local] [--queue-timeout milliseconds] [queueinfoitem ...] [--no-table-headers]

测试队列领导者副本是否在给定超时时间内响应。列出未及时响应的队列。

可以通过其状态或位置使用以下互斥选项之一来过滤显示的队列:

--all

列出所有队列。

--local

仅列出其领导者副本位于当前节点的队列。

use queueinfoitem 参数用于指示要在结果中包含哪些队列信息项。结果中的列顺序将与参数顺序匹配。queueinfoitem 可以接受以下列表中的任何值:

name

队列的名称,非 ASCII 字符已根据 C 语言进行转义。

durable

队列是否应在服务器重启后仍然存在。

auto_delete

当所有显式绑定被删除时,队列是否会被自动删除。

arguments

队列的参数。

policy

适用于该队列的有效策略名称。

pid

领导者副本的 Erlang 进程标识符。

recoverable_mirrors

被认为是可达(可用)的镜像副本(跟随副本)的 Erlang 进程标识符。

type

队列类型,以下之一:quorum、stream、classic。

例如,此命令仅列出其领导者副本托管在目标节点上的无响应队列。

rabbitmqctl list_unresponsive_queues --local name

ping

检查节点 OS 进程是否正在运行,是否已在 EPMD 中注册,以及 CLI 工具是否可以对其进行身份验证。

示例

rabbitmqctl ping -n rabbit@hostname

report

生成服务器状态报告,其中包含所有服务器状态信息的合并,用于支持目的。当附带支持请求时,输出应重定向到文件。

例如,此命令生成一个服务器报告,该报告可以附加到支持请求电子邮件。

rabbitmqctl report > server_report.txt

schema_info [--no-table-headers] [column ...]

列出模式数据库表及其属性。

例如,此命令列出表名及其活动副本。

rabbitmqctl schema_info name active_replicas

status

显示代理状态信息,例如当前 Erlang 节点上运行的应用程序、RabbitMQ 和 Erlang 版本、操作系统名称,以及内存和文件描述符统计信息(请参阅 cluster_status 命令了解哪些节点已集群化并正在运行)。

例如,此命令显示有关 RabbitMQ 代理的信息。

rabbitmqctl status

Runtime Parameters and Policies

RabbitMQ 的某些功能(例如 Federation 插件)由动态的、集群范围的参数控制。有两种参数:作用于虚拟主机的参数和全局参数。每个 vhost 范围的参数由组件名称、名称和值组成。组件名称和名称是字符串,值是有效的 JSON 文档。全局参数由名称和值组成。名称是字符串,值是任意 Erlang 数据结构。参数可以设置、清除和列出。通常,您应参考相关功能的文档来了解如何设置参数。

策略是基于运行时参数构建的功能。策略用于在集群范围内控制和修改队列和交换器的行为。策略适用于给定的 vhost,并由名称、模式、定义和可选优先级组成。策略可以设置、清除和列出。

clear_global_parameter name

清除全局运行时参数。这类似于 clear_parameter,但键值对不与虚拟主机绑定。

name
要清除的全局运行时参数的名称。

例如,此命令清除全局运行时参数 "mqtt_default_vhosts"。

rabbitmqctl clear_global_parameter mqtt_default_vhosts

clear_parameter [-p vhost] component_name key

清除参数。

component_name
正在清除参数的组件的名称。
name
正在清除的参数的名称。

例如,此命令清除默认虚拟主机中 "federation-upstream" 组件的参数 "node01"。

rabbitmqctl clear_parameter federation-upstream node01

list_global_parameters

列出所有全局运行时参数。这类似于 list_parameters,但全局运行时参数不与任何虚拟主机绑定。

例如,此命令列出所有全局参数。

rabbitmqctl list_global_parameters

list_parameters [-p vhost]

列出虚拟主机的所有参数。

例如,此命令列出默认虚拟主机中的所有参数。

rabbitmqctl list_parameters

set_global_parameter name value

设置全局运行时参数。这类似于 set_parameter,但键值对不与虚拟主机绑定。

name
要设置的全局运行时参数的名称。
value
全局运行时参数的值,作为 JSON 文档。在大多数 shell 中,您很可能需要对其进行引用。

例如,此命令将全局运行时参数 "mqtt_default_vhosts" 设置为 JSON 文档 {"O=client,CN=guest":"/"}。

rabbitmqctl set_global_parameter mqtt_default_vhosts '{"O=client,CN=guest":"/"}'

set_parameter [-p vhost] component_name name value

设置参数。

component_name
正在设置参数的组件的名称。
name
正在设置的参数的名称。
value
参数的值,作为 JSON 文档。在大多数 shell 中,您很可能需要对其进行引用。

例如,此命令在默认虚拟主机中为 "federation-upstream" 组件设置参数 "node01",其值为以下 JSON "guest":

rabbitmqctl set_parameter federation-upstream node01 '{"uri":"amqp://user:password@server/%2F","ack-mode":"on-publish"}'

list_policies [-p vhost]

列出虚拟主机的所有策略。

例如,此命令列出默认虚拟主机中的所有策略。

rabbitmqctl list_policies

set_operator_policy [-p vhost] [--priority priority] [--apply-to apply-to] name pattern definition

设置一个操作符策略,该策略会覆盖用户策略中的一部分参数。参数与 set_policy 的参数相同。

支持的参数有

  • expires

  • message-ttl

  • max-length

  • max-length-bytes

set_policy [-p vhost] [--priority priority] [--apply-to apply-to] name pattern definition

设置一个策略。

name
策略的名称。
pattern
正则表达式,如果匹配到资源名称,则策略生效。
definition
策略的定义,格式为 JSON 文档。在大多数 shell 中,您很可能需要将其加上引号。
priority
策略的优先级,一个整数。数值越高,优先级越高。默认为 0。
apply-to

此策略应应用于哪些类型的对象。可能的值为

  • queues (所有队列类型,包括 streams)

  • classic_queues (仅经典队列)

  • quorum_queues (仅仲裁队列)

  • streams (仅 stream)

  • exchanges

  • all

默认为 all

例如,此命令在默认虚拟主机中设置策略 "federate-me",以便内置交换机被联合。

rabbitmqctl set_policy federate-me ^amq. '{"federation-upstream-set":"all"}'

clear_policy [-p vhost] name

清除一个策略。

name
要清除的策略的名称。

例如,此命令清除默认虚拟主机中的 "federate-me" 策略。

rabbitmqctl clear_policy federate-me

clear_operator_policy [-p vhost] name

清除操作符策略。参数与 clear_policy 的参数相同。

list_operator_policies [-p vhost]

列出虚拟主机的操作符策略覆盖。参数与 list_policies 的参数相同。

虚拟主机

请注意,rabbitmqctl 管理 RabbitMQ 的内部用户数据库。来自任何替代授权后端的用户的权限将不会对 rabbitmqctl 可见。

add_vhost vhost [--description desc --tags tags --default-queue-type default-q-type]

vhost
要创建的虚拟主机条目的名称。
desc
任意虚拟主机描述,例如其目的,供操作员参考。
tags
供操作员参考的虚拟主机标签的逗号分隔列表。
default-q-type
如果客户端未明确指定队列类型,则使用此类型。值为:quorum, stream。

创建一个虚拟主机。

例如,此命令指示 RabbitMQ 代理创建一个名为 "project9_dev_18" 的新虚拟主机。

rabbitmqctl add_vhost project9_dev_18 --description 'Dev environment no. 18' --tags dev,project9

clear_vhost_limits [-p vhost]

清除虚拟主机限制。

例如,此命令清除 "qa_env" 虚拟主机中的虚拟主机限制。

rabbitmqctl clear_vhost_limits -p qa_env

delete_vhost vhost

vhost
要删除的虚拟主机条目的名称。

删除一个虚拟主机。

删除虚拟主机将删除其所有交换机、队列、绑定、用户权限、参数和策略。

例如,此命令指示 RabbitMQ 代理删除名为 "test" 的虚拟主机。

rabbitmqctl delete_vhost a-vhost

list_vhost_limits [-p vhost] [--global] [--no-table-headers]

显示配置的虚拟主机限制。

--global

显示所有虚拟主机的限制。忽略 -p 参数。

restart_vhost [-p vhost]

vhost
要重启的虚拟主机条目的名称,默认为 "/"。

重启失败的虚拟主机数据存储和队列。

例如,此命令指示 RabbitMQ 代理重启名为 "test" 的虚拟主机。

rabbitmqctl restart_vhost test

set_vhost_limits [-p vhost] definition

设置虚拟主机限制。

definition

限制的定义,格式为 JSON 文档。在大多数 shell 中,您很可能需要将其加上引号。

识别的限制为

  • max-connections

  • max-queues

使用负值表示“无限制”。

例如,此命令将 "qa_env" 虚拟主机中并发连接的最大数量限制为 64。

rabbitmqctl set_vhost_limits -p qa_env '{"max-connections": 64}'

此命令将 "qa_env" 虚拟主机中的队列最大数量限制为 256。

rabbitmqctl set_vhost_limits -p qa_env '{"max-queues": 256}'

此命令清除 "qa_env" 虚拟主机中的最大连接数限制。

rabbitmqctl set_vhost_limits -p qa_env '{"max-connections": -1}'

此命令禁用 "qa_env" 虚拟主机中的客户端连接。

rabbitmqctl set_vhost_limits -p qa_env '{"max-connections": 0}'

set_user_limits username definition

设置用户限制。

username
要应用限制的用户的名称。
definition

限制的定义,格式为 JSON 文档。在大多数 shell 中,您很可能需要将其加上引号。

识别的限制为

  • max-connections

  • max-channels

使用负值表示“无限制”。

例如,此命令将用户 "limited_user" 允许打开的并发连接的最大数量限制为 64。

rabbitmqctl set_user_limits limited_user '{"max-connections": 64}'

此命令将用户 "limited_user" 在连接上允许打开的最大通道数量限制为 16。

rabbitmqctl set_user_limits limited_user '{"max-channels": 16}'

此命令清除用户 "limited_user" 的最大连接数限制。

rabbitmqctl clear_user_limits limited_user 'max-connections'

此命令禁用用户 "limited_user" 的客户端连接。

rabbitmqctl set_user_limits limited_user '{"max-connections": 0}'

clear_user_limits username limit

清除用户限制。

username
要清除限制的用户的名称。
limit
限制的名称,或 "all" 表示一次清除所有限制。

识别的限制为

  • max-connections

  • max-channels

例如,此命令清除用户 "limited_user" 的最大连接限制。

rabbitmqctl clear_user_limits limited_user 'max-connections'

此命令清除用户 "limited_user" 的所有限制。

rabbitmqctl clear_user_limits limited_user all

trace_off [-p vhost]

vhost
要停止跟踪的虚拟主机的名称。

停止跟踪。

trace_on [-p vhost]

vhost
要开始跟踪的虚拟主机的名称。

开始跟踪。请注意,跟踪状态不是持久的;如果节点重启,它将恢复到关闭状态。

配置

decode value passphrase [--cipher cipher] [--hash hash] [--iterations iterations]

value passphrase

要解密的值(由 encode 命令生成)和密码。

例如:

rabbitmqctl decode '{encrypted, <<"...">>}' mypassphrase

--cipher cipher --hash hash --iterations iterations

用于指定解密设置的选项。它们可以独立使用。

例如:

rabbitmqctl decode --cipher blowfish_cfb64 --hash sha256 --iterations 10000 '{encrypted,<<"...">>} mypassphrase

encode value passphrase [--cipher cipher] [--hash hash] [--iterations iterations]

value passphrase

要加密的值和密码。

例如:

rabbitmqctl encode '<<"guest">>' mypassphrase

--cipher cipher --hash hash --iterations iterations

用于指定加密设置的选项。它们可以独立使用。

例如:

rabbitmqctl encode --cipher blowfish_cfb64 --hash sha256 --iterations 10000 '<<"guest">>' mypassphrase

set_cluster_name name

将集群名称设置为 name。集群名称会在连接时通告给客户端,并被 federation 和 shovel 插件用于记录消息的来源。集群名称默认从集群中第一个节点的 hostname 派生,但可以更改。

例如,此命令将集群名称设置为 "london"。

rabbitmqctl set_cluster_name london

set_disk_free_limit disk_limit

disk_limit
下限,以字节为单位的整数,或带有内存单位符号的字符串(参见 vm_memory_high_watermark),例如 512M 或 1G。一旦可用磁盘空间达到此限制,就会设置磁盘警报。

set_disk_free_limit mem_relative fraction

fraction
相对于可用 RAM 总量的比例,为一个非负浮点数。小于 1.0 的值可能存在风险,应谨慎使用。

set_log_level [log_level]

设置运行节点中的日志级别。

支持的 log_level 值有

  • debug

  • info

  • warning

  • error

  • critical

  • none

示例

rabbitmqctl set_log_level debug

set_vm_memory_high_watermark fraction

fraction
触发流控的新内存阈值比例,为一个大于或等于 0 的浮点数。

set_vm_memory_high_watermark [absolute] memory_limit

memory_limit

触发流控的新内存限制,以字节为单位的整数,大于或等于 0,或带有内存单位符号的字符串(例如 512M 或 1G)。可用的单位符号有

k, kiB

千字节 (2^10 字节)

M, MiB

兆字节 (2^20 字节)

G, GiB

吉字节 (2^30 字节)

kB

千字节 (10^3 字节)

MB

兆字节 (10^6 字节)

GB

千兆字节 (10^9 字节)

功能标志

enable_feature_flag feature_flag

在目标节点上启用一个功能标志。

示例

rabbitmqctl enable_feature_flag restart_streams

您也可以通过指定 "all" 来启用所有功能标志。

rabbitmqctl enable_feature_flag all

list_feature_flags [column ...]

列出功能标志。

支持的 column 值有

  • name

  • state

  • stability

  • provided_by

  • desc

  • doc_url

示例

rabbitmqctl list_feature_flags name state

连接操作

close_all_connections [-p vhost] [--global] [--per-connection-delay delay] [--limit limit] explanation

-p vhost

应关闭连接的虚拟主机的名称。指定 --global 时忽略。

--global

是否应关闭所有虚拟主机的连接。覆盖 -p

--per-connection-delay delay

每次关闭连接后等待的毫秒数。

--limit limit

要关闭的连接数。仅对每个虚拟主机有效。指定 --global 时忽略。
explanation
解释字符串。

指示代理关闭指定虚拟主机或整个 RabbitMQ 节点的全部连接。

例如,此命令指示 RabbitMQ 代理关闭 "qa_env" 虚拟主机上的 10 个连接,并将解释 "Please close" 传递给它们。

rabbitmqctl close_all_connections -p qa_env --limit 10 'Please close'

此命令指示代理关闭到节点的全部连接。

rabbitmqctl close_all_connections --global

close_connection connectionpid explanation

connectionpid
要关闭的连接关联的 Erlang 进程的 ID。
explanation
解释字符串。

指示代理关闭与 Erlang 进程 ID connectionpid 关联的连接(另请参阅 list_connections 命令),并将 explanation 字符串作为 AMQP 连接关闭协议的一部分传递给已连接的客户端。

例如,此命令指示 RabbitMQ 代理关闭与 Erlang 进程 ID "<rabbit@tanto.4262.0>" 关联的连接,并将解释 "go away" 传递给已连接的客户端。

rabbitmqctl close_connection "<rabbit@tanto.4262.0>" "go away"

杂项

eval expression

在目标节点上评估 Erlang 表达式。

队列操作

delete_queue queue_name [--if-empty | -e] [--if-unused | -u]

queue_name
要删除的队列的名称。
--if-empty
如果队列为空(没有待交付的消息),则删除该队列。
--if-unused
仅当队列没有消费者时才删除该队列。

删除一个队列。

purge_queue [-p vhost] queue

queue
要清空的队列的名称。

清空队列(移除其中的所有消息)。

插件命令

RabbitMQ 插件可以在启用时扩展 rabbitmqctl 工具以添加新命令。当前可用的命令可以在 rabbitmqctl help 输出中找到。以下命令由 RabbitMQ 插件添加,并在默认发行版中可用。

Shovel 插件

shovel_status

打印已配置的 Shovels 列表。

delete_shovel [-p vhost] name

指示 RabbitMQ 节点删除指定 name 的已配置 shovel。

Federation 插件

federation_status [--only-down]

打印 federation 链接列表。

--only-down

仅列出未运行的 federation 链接。
指示 RabbitMQ 节点重启具有指定 link_id 的 federation 链接。

AMQP 1.0 插件

list_amqp10_connections [amqp10_connectioninfoitem ...]

list_connections 命令类似,但返回对 AMQP-1.0 连接有意义的字段。amqp10_connectioninfoitem 参数用于指示在结果中包含哪些连接信息项。结果中的列顺序将与参数的顺序匹配。amqp10_connectioninfoitem 可以取以下列表中的任何值。

pid

与连接关联的 Erlang 进程的 ID。

auth_mechanism

使用的 SASL 身份验证机制,例如 "PLAIN"。

host

通过反向 DNS 获取的服务器主机名,或者如果反向 DNS 失败或关闭,则为其 IP 地址。

frame_max

最大帧大小(字节)。

timeout

连接超时 / 协商的心跳间隔(秒)。

user

与连接关联的用户名。

state

连接状态;以下之一:

  • starting

  • waiting_amqp0100

  • securing

  • running

  • blocking

  • blocked

  • closing

  • closed

recv_oct

接收的字节数。

recv_cnt

接收的数据包数。

send_oct

发送的字节数。

send_cnt

发送的数据包数。

ssl

指示连接是否使用 SSL 保护的布尔值。

ssl_protocol

SSL 协议(例如 "tlsv1")。

ssl_key_exchange

SSL 密钥交换算法(例如 "rsa")。

ssl_cipher

SSL 密码算法(例如 "aes_256_cbc")。

ssl_hash

SSL 哈希函数(例如 "sha")。

peer_cert_subject

对等方的 SSL 证书主题,以 RFC4514 格式表示。

peer_cert_issuer

对端的 SSL 证书颁发者,采用 RFC4514 格式。

peer_cert_validity

对端 SSL 证书有效的时期。

node

连接建立到的 RabbitMQ 节点的节点名称。

MQTT 插件

list_mqtt_connections [mqtt_connectioninfoitem]

list_connections 命令类似,但返回对 MQTT 连接有意义的字段。mqtt_connectioninfoitem 参数用于指示在结果中包含哪些连接信息项。结果中的列顺序将与参数的顺序匹配。mqtt_connectioninfoitem 可以取以下列表中的任何值。

host

通过反向 DNS 获取的服务器主机名,或者如果反向 DNS 失败或关闭,则为其 IP 地址。

port

服务器端口。

peer_host

通过反向 DNS 获取的对端主机名,或者如果反向 DNS 失败或未启用,则为其 IP 地址。

peer_port

对端端口。

protocol

MQTT 协议版本,可以是以下之一:

  • {'MQTT', N/A}

  • {'MQTT', 3.1.0}

  • {'MQTT', 3.1.1}

channels

使用该连接的通道数量。

channel_max

此连接上的最大通道数。

frame_max

最大帧大小(字节)。

client_properties

客户端在连接建立期间传输的信息属性。

ssl

指示连接是否使用 SSL 保护的布尔值。

ssl_protocol

SSL 协议(例如 "tlsv1")。

ssl_key_exchange

SSL 密钥交换算法(例如 "rsa")。

ssl_cipher

SSL 密码算法(例如 "aes_256_cbc")。

ssl_hash

SSL 哈希函数(例如 "sha")。

conn_name

连接的可读名称。

connection_state

连接状态;以下之一:

  • starting

  • running

  • blocked

connection

与内部 amqp 直接连接关联的 Erlang 进程的 ID。

consumer_tags

QOS0 和 QOS1 的消费者标签元组。

message_id

在控制消息中发送的最后一个 Packet ID。

client_id

连接的 MQTT 客户端标识符。

clean_sess

MQTT 清理会话标志。

will_msg

在 CONNECT 帧中发送的 MQTT Will 消息。

exchange

在 rabbitmq_mqtt application 环境中配置的用于路由 MQTT 消息的交换机。

ssl_login_name

SSL 对等证书认证名称。

retainer_pid

与连接的保留存储关联的 Erlang 进程的 ID。

user

与连接关联的用户名。

vhost

虚拟主机名称,其中非 ASCII 字符已像 C 语言一样进行转义。

decommission_mqtt_node

在禁用插件的节点或从集群中移除节点之前,必须将其退役。

例如,此命令将移除节点 rabbit@stringer。

rabbitmqctl decommission_mqtt_node rabbit@stringer

STOMP 插件

list_stomp_connections [stomp_connectioninfoitem]

list_connections 命令类似,但返回对 STOMP 连接有意义的字段。stomp_connectioninfoitem 参数用于指示在结果中包含哪些连接信息项。结果中的列顺序将与参数的顺序匹配。stomp_connectioninfoitem 可以取以下列表中的任何值。

conn_name

连接的可读名称。

connection

与内部 amqp 直接连接关联的 Erlang 进程的 ID。

connection_state

连接状态;以下之一:

  • running

  • blocking

  • blocked

session_id

STOMP 协议会话标识符。

channel

与连接关联的 AMQP 通道。

version

为连接协商的 STOMP 协议版本。

implicit_connect

指示连接是否使用隐式连接(无 CONNECT 帧)建立。

auth_login

连接的有效用户名。

auth_mechanism

STOMP 授权机制。可以是以下之一:

  • config

  • ssl

  • stomp_headers

port

服务器端口。

host

服务器主机名,通过反向 DNS 获取,如果反向 DNS 失败或未启用,则为主机的 IP 地址。

peer_port

对端端口。

peer_host

通过反向 DNS 获取的对端主机名,或者如果反向 DNS 失败或未启用,则为其 IP 地址。

protocol

STOMP 协议版本,可以是以下之一:

  • {'STOMP', 0}

  • {'STOMP', 1}

  • {'STOMP', 2}

channels

使用该连接的通道数量。

channel_max

此连接上的最大通道数。

frame_max

最大帧大小(字节)。

client_properties

客户端在连接期间传输的信息属性。

ssl

指示连接是否使用 SSL 保护的布尔值。

ssl_protocol

TLS 协议(例如 "tlsv1")。

ssl_key_exchange

TLS 密钥交换算法(例如 "rsa")。

ssl_cipher

TLS 密码算法(例如 "aes_256_cbc")。

ssl_hash

SSL 哈希函数(例如 "sha")。

管理代理插件

reset_stats_db [--all]

重置 RabbitMQ 节点的管理统计数据库。

--all

重置集群中所有节点的统计数据库。

另请参阅

rabbitmq-diagnostics(8), rabbitmq-plugins(8), rabbitmq-server(8), rabbitmq-queues(8), rabbitmq-streams(8), rabbitmq-upgrade(8), rabbitmq-service(8), rabbitmq-env.conf(5), rabbitmq-echopid(8)

作者

The RabbitMQ Team <contact-tanzu-data.pdl@broadcom.com>

© . This site is unofficial and not affiliated with VMware.