HTTP API 参考
简介
这是 RabbitMQ HTTP API 的参考页面。
HTTP API 的客户端库
有几个成熟的 HTTP API 客户端库可用,请参阅 开发者工具。
基于 HTTP API 的 CLI 工具
除了客户端库,还有一个专门针对 HTTP API 的 CLI 工具,可用于交互式和脚本使用。
请参阅 rabbitmqadmin v2,一个用于 HTTP API 的命令行工具 以了解更多信息。
概述
所有 HTTP API 端点都将仅提供 application/json 类型的资源,并需要 HTTP 基本身份验证(使用标准的 RabbitMQ 用户数据库)。默认用户是 guest/guest。
许多 URI 需要在路径中包含虚拟主机的名称,因为名称仅在虚拟主机内唯一标识对象。由于默认虚拟主机的名称是 "/",这需要编码为 "%2F"。
PUT 资源会创建它。您上传的 JSON 对象必须具有某些强制键(下面会记录)并且可能包含可选键。其他键将被忽略。缺少强制键将构成错误。
由于 AMQP 中的绑定没有名称或 ID,我们根据其所有属性合成一个。由于在一般情况下很难预测此名称,您也可以通过 POST 到工厂 URI 来创建绑定。请参见下面的示例。
许多 URI 返回列表。此类 URI 可以添加查询字符串参数 sort 和 sort_reverse。sort 允许您选择一个主字段进行排序,而 sort_reverse 如果设置为 true 则会反转排序顺序。sort 参数可以包含由点分隔的子字段。这允许您按列表项的嵌套组件进行排序;它不允许您按多个字段进行排序。请参见下面的示例。
您还可以使用 columns 参数限制每个项目返回的信息。这是一个由点分隔的子字段的逗号分隔列表。请参见下面的示例。
可以通过 GET 请求禁用统计信息,仅获取每个对象的基本信息。这大大减少了返回的数据量以及每次查询在系统中的内存和资源消耗。对于某些监控和操作目的,这些查询更为合适。
要选择退出附加指标,请将 disable_stats 查询参数设置为 true。
已弃用的端点
避免依赖已弃用的端点。它们最终会变成无操作或可能被完全删除。
GET /api/aliveness-test
GET /api/aliveness-test 是 rabbitmqctl node_health_check 的 HTTP API 等效项:一个已长期弃用、具有侵入性和主观性的健康检查命令,自 4.0 版本以来一直无操作。
此端点自 2021 年以来已被弃用,并且从 RabbitMQ 4.1.0 版本开始无操作。
端点参考
下面的示例使用了 rabbitmqadmin v2 或 curl。
但是,API 也可以与任何 HTTP 客户端一起使用。Team RabbitMQ 强烈推荐使用一系列 专用的 HTTP API 客户端库。
生成 JSON 输出的示例也使用 jq 格式化输出。jq 的使用是完全可选的。
GET /api/overview
描述整个系统的各种随机信息。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin show overview
# jq is used for pretty-printing the result. It is entirely optional.
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/overview | jq
GET /api/cluster-name
返回标识此 RabbitMQ 集群的名称。
示例
- curl
# jq is used for pretty-printing the result. It is entirely optional.
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/cluster-name | jq
PUT /api/cluster-name
更新标识此 RabbitMQ 集群的名称。
GET /api/nodes
列出集群中的所有节点及其指标。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin list nodes
# jq is used for pretty-printing the result. It is entirely optional.
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/nodes | jq
GET /api/nodes/{name}
返回单个集群节点的指标。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin list nodes
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/nodes/rabbit@hostname | jq
GET /api/nodes/{name}/memory
返回特定集群节点的内存使用情况细分。
示例
- rabbitmqadmin v2
- curl
# in percent
rabbitmqadmin show memory_breakdown_in_percent --node rabbit@hostname
# in bytes
rabbitmqadmin show memory_breakdown_in_bytes --node rabbit@hostname
# jq is used for pretty-printing the result. It is entirely optional.
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/nodes/rabbit@hostname/memory | jq
GET /api/definitions
导出集群范围的定义:所有交换器、队列、绑定、用户、虚拟主机、权限、主题权限和参数。也就是说,除了消息之外的所有内容。
示例
- rabbitmqadmin v2
- curl
# Prints the result to the standard output stream.
# jq is used for pretty-printing the result. It is entirely optional.
rabbitmqadmin definitions export --stdout | jq
# stores the result to a file
rabbitmqadmin definitions export --file /path/to/exported.cluster.definitions.json
# jq is used for pretty-printing the result. It is entirely optional.
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/definitions | jq
相关文档指南:定义导出和导入。
POST /api/definitions
服务器定义:交换器、队列、绑定、用户、虚拟主机、权限、主题权限和参数。除了消息之外的所有内容。POST 用于上传现有的一组定义。请注意
集群范围的定义使用与虚拟主机特定的定义不同的格式。虚拟主机特定的定义无法通过此端点导入。请改用
POST /api/definitions/{vhost}端点。这些定义会进行合并。服务器上已存在但未包含在上传的定义中的任何内容都将保持不变。
不可变对象(交换器、队列和绑定)上的冲突定义将被忽略。现有定义将被保留。
可变对象上的冲突定义将导致服务器中的对象被上传定义中的对象覆盖。
如果发生错误,您将得到一个部分应用的定义集。
此端点支持 multipart/form-data 以及标准的 application/json 内容类型进行上传。在前一种情况下,定义文件应作为名为 "file" 的表单字段上传。
相关文档指南:定义导出和导入。
GET /api/definitions/{vhost}
导出单个虚拟主机的定义。
虚拟主机特定的定义不包含任何虚拟主机名称的详细信息,并且可以导入到任何虚拟主机中。也就是说,在导入定义时,虚拟主机的原始名称不必与目标虚拟主机的名称匹配。
相关文档指南:定义导出和导入。
示例
- rabbitmqadmin v2
- curl
# Prints the result to the standard output stream.
# jq is used for pretty-printing the result. It is entirely optional.
rabbitmqadmin --vhost "/" definitions export_from_vhost --stdout | jq
# stores the result to a file
rabbitmqadmin --vhost "/" definitions export_from_vhost --file /path/to/exported.single-vhost.definitions.json
# jq is used for pretty-printing the result. It is entirely optional.
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/definitions/%2F | jq
POST /api/definitions/{vhost}
导入(上传)单个虚拟主机的定义:该虚拟主机中的交换器、队列、绑定、用户、权限、主题权限和参数。
请注意
集群范围的定义无法通过此端点导入。请改用
POST /api/definitions/端点。虚拟主机特定的定义不包含任何虚拟主机名称的详细信息,并且可以导入到任何虚拟主机中。也就是说,在导入定义时,虚拟主机的原始名称不必与目标虚拟主机的名称匹配。
这些定义会进行合并。服务器上已存在但未包含在上传的定义中的任何内容都将保持不变。
不可变对象(交换器、队列和绑定)上的冲突定义将被忽略。现有定义将被保留。
可变对象上的冲突定义将导致服务器中的对象被上传定义中的对象覆盖。
如果发生错误,您将得到一个部分应用的定义集。
此端点支持 multipart/form-data 以及标准的 application/json 内容类型进行上传。在前一种情况下,定义文件应作为名为 "file" 的表单字段上传。
相关文档指南:定义导出和导入。
GET /api/feature-flags
列出所有功能标志及其状态。
相关文档指南:功能标志。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin feature_flags list
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/feature-flags | jq
GET /api/deprecated-features
列出所有已弃用的功能及其状态。
相关文档指南:已弃用的功能
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin deprecated_features list
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/feature-flags | jq
GET /api/deprecated-features/used
列出在此集群中使用的已弃用功能。
相关文档指南:已弃用的功能
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin deprecated_features list_used
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/deprecated_features/used | jq
GET /api/connections
所有打开的连接列表。
使用 分页参数 来列出连接,否则此端点可能会产生非常大的 JSON 响应,浪费大量带宽和 CPU 资源。默认页大小为 100,最大支持页大小为 500。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin list connections
# This request can result in a very large JSON document
# and unnecessarily wasted CPU resources.
#
# Never use it to fetch information about a single connection.
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/connections | jq
GET /api/vhosts/{vhost}/connections
特定虚拟主机中所有打开的连接列表。
使用 分页参数 来列出连接,否则此端点可能会产生非常大的 JSON 响应,浪费大量带宽和 CPU 资源。默认页大小为 100,最大支持页大小为 500。
GET /api/connections/{name}
返回单个连接的指标。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin deprecated_features list_used
# the connection name must be percent-encoded
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/connections/127.0.0.1%3A54594%20-%3E%20127.0.0.1%3A5672 | jq
DELETE /api/connections/{name}
关闭连接。可以选择设置 "X-Reason" 标头以提供原因。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin close connection --name "127.0.0.1:51740 -> 127.0.0.1:5672"
# the connection name must be percent-encoded
curl -sL -u guest:guest -X DELETE -H "Accept: application/json" http://127.0.0.1:15672/api/connections/127.0.0.1%3A62965%20-%3E%20127.0.0.1%3A5672
GET /api/connections/username/{username}
使用特定用户名进行身份验证的所有打开的连接列表。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin list user_connections --username "guest"
# the connection name must be percent-encoded
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/connections/username/guest
DELETE /api/connections/username/{username}
关闭用户的全部连接。
可以选择设置 "X-Reason" 标头以提供原因。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin close user_connections --username "guest"
# the connection name must be percent-encoded
curl -sL -u guest:guest -X DELETE -H "Accept: application/json" http://127.0.0.1:15672/api/connections/127.0.0.1%3A62965%20-%3E%20127.0.0.1%3A5672
GET /api/connections/{name}/channels
给定连接的所有通道列表。
使用 分页参数 来列出通道,否则此端点可能会产生非常大的 JSON 响应,浪费大量带宽和 CPU 资源。默认页大小为 100,最大支持页大小为 500。
示例
- curl
# the connection name must be percent-encoded
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/connections/127.0.0.1%3A52066%20-%3E%20127.0.0.1%3A5672/channels | jq
GET /api/channels
所有打开的通道列表。
使用 分页参数 来列出通道,否则此端点可能会产生非常大的 JSON 响应,浪费大量带宽和 CPU 资源。默认页大小为 100,最大支持页大小为 500。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin list channels
# This request can result in a very large JSON document
# and unnecessarily wasted CPU resources.
#
# Never use it to fetch information about a single channel.
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/channels
GET /api/vhosts/{vhost}/channels
特定虚拟主机中所有打开的通道列表。
使用 分页参数 来列出通道,否则此端点可能会产生非常大的 JSON 响应,浪费大量带宽和 CPU 资源。默认页大小为 100,最大支持页大小为 500。
GET /api/channels/{id}
关于单个通道的详细信息。
GET /api/consumers
所有消费者列表。
使用 分页参数 来列出消费者,否则此端点可能会产生非常大的 JSON 响应,浪费大量带宽和 CPU 资源。默认页大小为 100,最大支持页大小为 500。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin list consumers
# This request can result in a very large JSON document
# and unnecessarily wasted CPU resources.
#
# Never use it to fetch information about a single consumers.
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/consumers
GET /api/consumers/{vhost}
给定虚拟主机中所有消费者列表。
GET /api/exchanges
所有交换器列表。使用 分页参数 来列出交换器。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin list exchanges
# This request can result in a very large JSON document
# and unnecessarily wasted CPU resources.
#
# Never use it to fetch information about a single exchange.
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/exchanges
GET /api/exchanges/{name}
给定虚拟主机中所有交换器列表。使用 分页参数 来列出交换器。
GET /api/exchanges/{vhost}/{name}
返回单个交换器的指标。
PUT /api/exchanges/{vhost}/{name}
声明一个交换器。
载荷示例
{
"type": "direct",
"auto_delete": false,
"durable": true,
"internal": false,
"arguments": {}
}
DELETE /api/exchanges/{vhost}/{name}
删除一个交换器。将 if-unused 查询参数设置为 true,如果交换器绑定到队列或作为另一个交换器的源,则操作将无操作。
GET /api/exchanges/{vhost}/{name}/bindings/source
给定交换器作为源的所有绑定列表。
GET /api/exchanges/{vhost}/{name}/bindings/destination
给定交换器作为目标的所有绑定列表。
PUT /api/exchanges/{vhost}/{name}/publish
将消息发布到给定的交换器。载荷示例
{
"properties": {},
"routing_key": "my key",
"payload": "my body",
"payload_encoding": "string"
}
所有键都是强制的。
payload_encoding 键应为 "string"(在这种情况下,载荷将被视为 payload 字段的 UTF-8 编码)或 "base64"(在这种情况下,payload 字段被视为 base64 编码)。
如果消息成功发布,响应将如下所示:
{"routed": true}
如果消息已发送到至少一个队列,则 routed 为 true。
请注意,HTTP API 是一个非常低效的发布选项;
请优先使用 AMQP 1.0、AMQP 0-9-1、RabbitMQ Streaming Protocol 或 RabbitMQ 支持的任何其他消息协议。
GET /api/queues
所有虚拟主机中的所有队列列表,返回一组缩减的字段。
使用 分页参数 来列出队列,否则此端点可能会产生非常大的 JSON 响应,浪费大量带宽和 CPU 资源。默认页大小为 100,最大支持页大小为 500。
参数 enable_queue_totals=true 可以与 disable_stats=true 参数结合使用,以返回缩减的字段集并显著减少此端点返回的数据量。反过来,这可以显著降低此类请求的 CPU 和带宽占用。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin list queues
# This request can result in a very large JSON document
# and unnecessarily wasted CPU resources.
#
# Never use it to fetch information about a single queue.
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/queues
GET /api/queues/detailed
所有队列的列表,包含关于队列的所有可用信息(每个队列超过 50 个字段)。
使用 分页参数 来列出队列,否则此端点可能会产生非常大的 JSON 响应,浪费大量带宽和 CPU 资源。默认页大小为 100,最大支持页大小为 500。
GET /api/queues/{vhost}
给定虚拟主机中所有队列的列表,包含关于队列的所有可用信息(每个队列超过 50 个字段)。。
使用 分页参数 来列出队列,否则此端点可能会产生非常大的 JSON 响应,浪费大量带宽和 CPU 资源。默认页大小为 100,最大支持页大小为 500。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin --vhost "/" list queues
# This request can result in a very large JSON document
# and unnecessarily wasted CPU resources.
#
# Never use it to fetch information about a single queue.
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/queues/%2F
GET /api/queues/{vhost}/{name}
返回队列的指标。
PUT /api/queues/{vhost}/{name}
声明一个队列。
示例载荷
{
"auto_delete": false,
"durable": true,
"arguments": {},
"node": "rabbit@node.hostname"
}
DELETE /api/queues/{vhost}/{name}
删除一个队列。
两个查询字符串参数,if-empty=true 和/或 if-unused=true,可用于条件删除。
GET /api/queues/{vhost}/{name}/bindings
给定队列的所有绑定列表。
DELETE /api/queues/{vhost}/{name}/contents
清空队列(删除其中所有处于就绪状态的消息)。
POST /api/queues/{vhost}/{name}/get
从队列中获取消息。(这不是 HTTP GET,因为它会改变队列的状态。)您应该发送一个类似以下的载荷:
{
"count": 5,
"ackmode": "ack_requeue_true",
"encoding": "auto",
"truncate": 50000
}
count 控制一次可以返回(获取)的最大消息数。
ackmode 参数控制如何 确认 消耗的消息。支持的值有:
ack_requeue_true:将获取的消息重新入队。reject_requeue_true:将获取的消息重新入队。ack_requeue_false:对消息进行肯定确认并标记为删除。reject_requeue_false:对消息进行否定确认并标记为删除。
encoding 可以是 "auto"(如果载荷是有效的 UTF-8,则载荷将作为 UTF-8 编码的字符串返回)或 "base64"(Base64 编码的载荷)。
如果 truncate 键设置为一个字节值,那么比该值长的消息将被截断。
此端点仅用于开发和故障排除,不适用于生产环境。在生产环境中,请改用消息或流协议客户端库。
GET /api/bindings
所有绑定列表。
使用 分页参数 来列出绑定,否则此端点可能会产生非常大的 JSON 响应,浪费大量带宽和 CPU 资源。默认页大小为 100,最大支持页大小为 500。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin list bindings
# This request can result in a very large JSON document
# and unnecessarily wasted CPU resources.
#
# Never use it to fetch information about a single queue.
#
# The virtual host name must be percent-encoded
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/queues/%2F
GET /api/bindings/{vhost}
使用 分页参数 来列出绑定,否则此端点可能会产生非常大的 JSON 响应,浪费大量带宽和 CPU 资源。默认页大小为 100,最大支持页大小为 500。
示例
- curl
# the virtual host name must be percent-encoded
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/bindings/%2F
GET /api/bindings/{vhost}/e/{exchange}/q/{queue}
返回一个交换器和队列之间的所有绑定列表。
一个交换器和一个队列可以绑定多次,因此此列表可能包含同一对的多个绑定。
POST /api/bindings/{vhost}/e/{exchange}/q/{queue}
将一个队列绑定到一个交换器。
请求体应为一个 JSON 对象,可选择包含两个字段:routing_key(字符串)和 arguments(一个可选参数的映射)。
{
"routing_key": "my_routing_key",
"arguments": {"x-optional-arg": "optional-value"}
}
两个载荷键都是可选的。
响应将包含一个 Location 标头,其中包含新声明的绑定的 URI。
GET /api/bindings/{vhost}/e/{exchange}/q/{queue}/{props}
检索交换器和队列之间的单个绑定。
URI 的 {props} 部分是绑定的 "名称",由其路由键和参数的哈希组成。
{props} 是绑定列表响应中名为 properties_key 的字段。
DELETE /api/bindings/{vhost}/e/{exchange}/q/{queue}/{props}
删除交换器和队列之间的单个绑定。
URI 的 {props} 部分是绑定的 "名称",由其路由键和参数的哈希组成。
{props} 是绑定列表响应中名为 properties_key 的字段。
GET /api/bindings/{vhost}/e/{source}/e/{destination}
POST /api/bindings/{vhost}/e/{source}/e/{destination}
创建新的 交换器到交换器的绑定。
请求体应为一个 JSON 对象,可选择包含两个字段:routing_key(字符串)和 arguments(一个可选参数的映射)。
{
"routing_key": "my_routing_key",
"arguments": {
"x-arg": "value"
}
}
两个键都是可选的。
响应将包含一个 Location 标头,其中包含新声明的绑定的 URI。
GET /api/bindings/{vhost}/e/{source}/e/{destination}/{props}
返回特定 交换器到交换器的绑定 的详细信息。
DELETE /api/bindings/{vhost}/e/{source}/e/{destination}/{props}
删除 交换器到交换器的绑定。
GET /api/vhosts
返回集群中所有虚拟主机的列表。
分页:默认页大小为 100,最大支持页大小为 500。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin list vhosts
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/vhosts
GET /api/vhosts/{name}
返回特定虚拟主机的指标。
PUT /api/vhosts/{name}
创建虚拟主机或更新现有虚拟主机的元数据。
载荷示例
{
"description": "virtual host description",
"tags": "accounts,production",
"default_queue_type": "quorum",
"protected_from_deletion": false
}
tags 键必须是逗号分隔的标签列表。这些元数据字段是可选的。
要启用或禁用跟踪,请使用 tracing 键。
{"tracing":true}
DELETE /api/vhosts/{name}
删除虚拟主机,前提是它没有被保护删除。
GET /api/vhosts/{name}/permissions
给定虚拟主机的所有权限列表。
GET /api/vhosts/{name}/topic-permissions
给定虚拟主机的所有主题权限列表。
POST /api/vhosts/{name}/deletion/protection
保护虚拟主机免于删除。标记为受保护的虚拟主机在解除保护之前无法删除。
DELETE /api/vhosts/{name}/deletion/protection
从虚拟主机中移除删除保护,以便可以删除它。
POST /api/vhosts/{name}/start/{node}
在节点上启动或重启虚拟主机。
显式执行此操作几乎从不需要。RabbitMQ 节点在集群形成后的最初几分钟内(更具体地说,在每个集群成员启动后)确保所有虚拟主机都在所有集群节点上启动。
GET /api/users
列出集群中的所有用户。这只包括内部数据存储中的用户。例如,如果使用了LDAP 后端,此命令将不包括任何 LDAP 用户。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin list users
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/users
GET /api/users/without-permissions
列出没有权限(无法访问任何虚拟主机)且可以安全删除的用户。
POST /api/users/bulk-delete
批量删除用户列表。载荷必须包含 users 键,该键是用户名的数组。
{"users" : ["user1", "user2", "user3"]}
GET /api/users/{name}
返回内部数据存储中用户的相关信息。
PUT /api/users/{name}
创建用户。载荷中必须提供密码或密码哈希。
{"password":"secret","tags":"administrator"}
{"password_hash":"2lmoth8l4H0DViLaK9Fxi6l9ds8=", "tags":["administrator"]}
password_hash 必须使用 密码指南 中描述的算法生成。
tags 键接受一个逗号分隔的标签列表。
如果两者均未设置,则用户将无法使用密码登录,但可以使用其他机制(如客户端证书)。
将 password_hash 设置为空字符串("")将确保用户无法使用密码登录。
可以使用 hashing_algorithm 键覆盖哈希函数。当前识别的算法有 rabbit_password_hashing_sha256、rabbit_password_hashing_sha512 和 rabbit_password_hashing_md5。
DELETE /api/users/{name}
删除用户。
GET /api/users/{user}/permissions
给定用户的全部权限列表。
GET /api/users/{user}/topic-permissions
给定用户的全部主题权限列表。
GET /api/user-limits
列出所有用户的每用户限制。
GET /api/user-limits/{user}
列出特定用户的每用户限制。
PUT /api/user-limits/{user}/{name}
为 user 设置或删除每用户限制。name URL 路径元素指的是限制的名称(max-connections、max-channels)。
限制是使用正文中的 JSON 文档设置的。
{"value": 100}
使用 curl 的示例请求
curl -4u 'guest:guest' -H 'content-type:application/json' -X PUT localhost:15672/api/user-limits/guest/max-connections -d '{"value": 100}'
DELETE /api/user-limits/{user}/{name}
清除每用户限制。
GET /api/permissions
集群中所有用户权限列表。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin list permissions
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/permissions
GET /api/permissions/{vhost}/{user}
返回用户在给定虚拟主机中的权限。
PUT /api/permissions/{vhost}/{user}
授予(创建)或更新用户在给定虚拟主机中的权限。
载荷示例
{"configure":".*","write":".*","read":".*"}
所有三个权限都必须明确提供。
DELETE /api/permissions/{vhost}/{user}
撤销用户在给定虚拟主机中的权限。
GET /api/topic-permissions
列出集群中所有 主题交换器权限。
GET /api/topic-permissions/{vhost}/{user}
返回用户在给定虚拟主机中的 主题交换器权限。
PUT /api/topic-permissions/{vhost}/{user}
授予或更新用户的 主题交换器权限。
{
"exchange": "amq.topic",
"write": "^a",
"read":".*",
"configure":".*"
}
上面示例中的所有键都是强制的。
DELETE /api/topic-permissions/{vhost}/{user}
撤销用户的 主题交换器权限。
GET /api/parameters
返回集群中所有虚拟主机的 运行时参数 列表。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin list parameters
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/parameters
GET /api/parameters/{component}
GET /api/parameters/{component}/{vhost}
GET /api/parameters/{component}/{vhost}/{name}
PUT /api/parameters/{component}/{vhost}/{name}
创建或更新 运行时参数。
示例载荷
{
"vhost": "vh-2",
"name": "policies.1",
"pattern": "^cq",
"apply-to": "queues",
"definition": {
"max-length": 1000000
}
}
DELETE /api/parameters/{component}/{vhost}/{name}
删除 运行时参数。
GET /api/global-parameters
列出集群中所有 全局运行时参数。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin global_parameters list
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/global-parameters
GET /api/global-parameters/{name}
返回给定全局运行时参数的值(定义)。
示例
- curl
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/global-parameters/cluster_name
PUT /api/global-parameters/{name}
设置给定的全局运行时参数。
示例载荷
{
"name": "cluster_name",
"value": "prod-456"
}
{
"name": "cluster_tags",
"value": {
"environment": "production",
"az": "ca-central-1"
}
}
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin global_parameters set --name "cluster_tags" --value '{"az": "ca-central-1", "environment": "production"}'
curl -sL -u guest:guest -X PUT -H "Accept: application/json" -H "Content-Type: application/json" http://127.0.0.1:15672/api/global-parameters/cluster_tags \
--data '{"value": {"region": "ca-central-1", "environment": "production"}, "name": "cluster_tags"}'
DELETE /api/global-parameters/{name}
清除全局运行时参数。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin global_parameters clear --name "cluster_tags"
curl -sL -u guest:guest -X DELETE -H "Accept: application/json" http://127.0.0.1:15672/api/global-parameters/cluster_tags
GET /api/policies
列出集群中所有虚拟主机的 策略。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin list policies
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/policies
GET /api/policies/{vhost}
列出给定虚拟主机中的 策略。
示例
- curl
# The virtual host name must be percent-encoded
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/policies/%2F
GET /api/policies/{vhost}/{name}
返回 策略 定义。
PUT /api/policies/{vhost}/{name}
声明或更新 策略。
示例载荷
{"pattern":"^amq.", "definition": {"federation-upstream-set":"all"}, "priority": 10, "apply-to": "queues"}
示例中的所有键都是强制的。
一次只有一个策略适用于队列、流或交换器。
当多个策略具有冲突的优先级时,将应用随机一个。因此,这种情况必须避免。
DELETE /api/policies/{vhost}/{name}
删除策略。
GET /api/operator-policies
列出集群中所有虚拟主机的 操作员策略。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin list operator_policies
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/operator-policies
GET /api/operator-policies/{vhost}
返回操作员 策略 定义。
示例
- curl
# The virtual host name must be percent-encoded
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/operator-policies/%2F
GET /api/operator-policies/{vhost}/{name}
返回操作员 策略 定义。
PUT /api/operator-policies/{vhost}/{name}
示例载荷
{"pattern":"^amq.", "definition": {"federation-upstream-set":"all"}, "priority": 10, "apply-to": "queues"}
示例中的所有键都是强制的。
一次只有一个策略适用于队列、流或交换器。
当多个策略具有冲突的优先级时,将应用随机一个。因此,这种情况必须避免。
DELETE /api/operator-policies/{vhost}/{name}
删除操作员策略。
GET /api/vhost-limits
列出集群中配置的所有 虚拟主机限制。
示例
- curl
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/vhost-limits
GET /api/vhost-limits/{vhost}
列出为目标虚拟主机配置的 虚拟主机限制。
示例
- rabbitmqadmin v2
- curl
rabbitmqadmin --vhost "/" list vhost_limits
# The virtual host name must be percent-encoded
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/vhost-limits/%2F
PUT /api/vhost-limits/{vhost}/{name}
为 vhost 设置或删除每虚拟主机限制。name URL 路径元素指的是限制的名称(max-connections、max-queues)。
限制是使用正文中的 JSON 文档设置的。
{"value": 100}
示例请求
curl -4u 'guest:guest' -H 'content-type:application/json' -X PUT localhost:15672/api/vhost-limits/my-vhost/max-connections -d '{"value": 50}'
相关文档指南:虚拟主机。
DELETE /api/vhost-limits/{vhost}/{name}
清除(移除) 虚拟主机限制。
GET /api/federation-links
提供集群中所有虚拟主机的联盟链接的状态。
仅当启用了 rabbitmq_federation_management 插件时,此端点才可用。
相关文档指南:联盟。
GET /api/federation-links/{vhost}
提供给定虚拟主机中所有联盟链接的状态。
仅当启用了 rabbitmq_federation_management 插件时,此端点才可用。
相关文档指南:联盟。
GET /api/auth/attempts/{node}
节点注册的客户端身份验证尝试列表。
GET /api/auth/attempts/{node}/source
按远程地址和用户名分组的客户端身份验证尝试列表。
GET /api/auth/hash_password/{password}
根据当前配置的密码哈希算法对提供的 密码 进行哈希。
示例
- rabbitmqadmin v2
- curl
# Hash a password using SHA256 (default)
rabbitmqadmin passwords salt_and_hash "my-secret-password"
# Hash a password using SHA512
rabbitmqadmin passwords salt_and_hash "my-secret-password" --hashing-algorithm SHA512
curl -sL -u guest:guest -H "Accept: application/json" http://127.0.0.1:15672/api/auth/hash_password/my-secret-password
GET /api/stream/connections
列出集群中所有虚拟主机的 流协议 连接。
使用 分页参数 来列出连接,否则此端点可能会产生非常大的 JSON 响应,浪费大量带宽和 CPU 资源。默认页大小为 100,最大支持页大小为 500。
需要启用 rabbitmq_stream_management 插件。
GET /api/stream/connections/{vhost}
特定虚拟主机中所有打开的 流协议 连接列表。
使用 分页参数 来列出连接,否则此端点可能会产生非常大的 JSON 响应,浪费大量带宽和 CPU 资源。默认页大小为 100,最大支持页大小为 500。
需要启用 rabbitmq_stream_management 插件。
GET /api/stream/connections/{vhost}/{name}
返回特定 流协议 连接的指标。
需要启用 rabbitmq_stream_management 插件。
DELETE /api/stream/connections/{vhost}/{name}
关闭特定 流协议 连接。
可以选择设置 "X-Reason" 标头以提供原因。
需要启用 rabbitmq_stream_management 插件。
GET /api/stream/connections/{vhost}/{name}/publishers
列出 流协议 连接上已知的发布者。
需要启用 rabbitmq_stream_management 插件。
GET /api/stream/connections/{vhost}/{name}/consumers
列出 流协议 连接上已知的消费者。
使用 分页参数 来列出消费者,否则此端点可能会产生非常大的 JSON 响应,浪费大量带宽和 CPU 资源。默认页大小为 100,最大支持页大小为 500。
需要启用 rabbitmq_stream_management 插件。
GET /api/stream/publishers
所有 流协议 连接上已知的发布者列表。
需要启用 rabbitmq_stream_management 插件。
GET /api/stream/publishers/{vhost}
给定虚拟主机中所有 流协议 连接上已知的发布者列表。
需要启用 rabbitmq_stream_management 插件。
GET /api/stream/publishers/{vhost}/{stream}
所有 流协议 连接上到给定流的已知发布者列表。
需要启用 rabbitmq_stream_management 插件。
GET /api/stream/consumers
使用 分页参数 来列出消费者,否则此端点可能会产生非常大的 JSON 响应,浪费大量带宽和 CPU 资源。默认页大小为 100,最大支持页大小为 500。
需要启用 rabbitmq_stream_management 插件。
GET /api/stream/consumers/{vhost}
特定虚拟主机中的流消费者列表。
需要启用 rabbitmq_stream_management 插件。
健康检查端点
GET /api/health/checks/alarms
如果没有集群中的告警生效,则响应 200 OK,否则响应 503 Service Unavailable。
相关文档指南:资源告警。
GET /api/health/checks/local-alarms
如果没有集群中的告警生效,则响应 200 OK,否则响应 503 Service Unavailable。
相关文档指南:资源告警。
GET /api/health/checks/certificate-expiration/{within}/{unit}
检查所有 TLS 启用的监听器使用的 PEM 证书包中找到的每个证书的过期日期,无论证书的“类型”是什么(叶/服务器标识、中间商或任何 CA)。
如果所有证书都有效(未过期),则响应 200 OK,否则响应 503 Service Unavailable。
此健康检查假设:
- 节点上的 PEM 证书包中包含的所有证书都与 RabbitMQ 客户端、插件或加密的节点间通信相关。
- 过期的证书不是正常运行状态,任何过期的证书都必须报告为检查失败。
如果其中一些假设不成立,请不要使用此健康检查。
有效单位:days, weeks, months, years。{within} 参数的值是单位的数量。因此,当 {within} 为 2 且 {unit} 为 "months" 时,检查使用的过期期限将是接下来的两个月。
GET /api/health/checks/port-listener/{port}
如果给定端口上有活动监听器,则响应 200 OK,否则响应 503 Service Unavailable。
相关文档指南:网络。
GET /api/health/checks/protocol-listener/{protocols}
如果所有给定协议都有活动监听器,则响应 200 OK,否则响应 503 Service Unavailable。可以通过用逗号分隔名称来提供多个协议。
有效的协议名称包括:amqp、mqtt、stomp、web-mqtt、web-stomp。要检查加密监听器,请在协议名称后添加 s,例如 amqps 或 mqtts。
GET /api/health/checks/virtual-hosts
如果所有虚拟主机都在目标节点上运行,则响应 200 OK,否则响应 503 Service Unavailable。
GET /api/health/checks/node-is-quorum-critical
检查是否存在仲裁队列(如果目标节点关闭,这些队列将丢失其仲裁和可用性)。如果没有这样的仲裁队列,则响应 200 OK,否则响应 503 Service Unavailable。
相关文档指南:仲裁队列。
GET /api/health/checks/is-in-service
如果目标节点已启动、运行并准备好服务客户端,则响应 200 OK,否则响应 503 Service Unavailable。如果目标节点正在为维护而进行停用,则此检查将返回 503 Service Unavailable。
GET /api/health/checks/below-node-connection-limit
如果目标节点到 AMQP 和 AMQPS 端口的连接数少于配置的最大值,则响应 200 OK,否则响应 503 Service Unavailable。
GET /api/health/checks/ready-to-serve-clients
如果目标节点已准备好为客户端服务,则响应 200 OK,否则响应 503 Service Unavailable。此检查组合了:
/api/health/checks/is-in-service/api/health/checks/protocol-listener/amqp或/api/health/checks/protocol-listener/amqps/api/health/checks/below-node-connection-limit
因此,此检查仅在目标节点处于服务状态、存在 AMQP 或 AMQPS 监听器且目标节点处于活动状态的 AMQP 和 AMQPS 连接数少于其配置限制时才返回 200 OK。
GET /api/rebalance/queues
重新平衡所有虚拟主机中的所有队列。
此操作是异步的。请检查 RabbitMQ 日志 以获取有关操作成功或失败的消息。
curl -4u 'guest:guest' -XPOST localhost:15672/api/rebalance/queues/
GET /api/whoami
返回已进行身份验证的用户的用户名。
GET /api/auth
关于 OAuth 2 配置的详细信息。它将返回 HTTP 状态 200 并带有以下格式的响应体。
{"oauth_enabled":"boolean", "oauth_client_id":"string", "oauth_provider_url":"string"}
GET /api/extensions
注册到管理插件的扩展列表。
HTTP API 返回的指标
您可以向 HTTP API 发出的 GET 请求大部分都会返回具有大量键的 JSON 对象。其中一些键代表您在 PUT 请求或 AMQP 命令中自己设置的内容(例如,队列持久性或参数),而大多数键则代表与特定对象相关的统计信息。本页将尝试记录它们。
应将其与 rabbitmqctl 的手册页结合阅读(如果您安装在 Unix / Linux 上,请参阅您的安装指南,或在 RabbitMQ 网站上查找最新版本)。
形式为
rabbitmqctl list_{object}
rabbitmqctl list_{object}
的命令可能返回的任何字段也将返回在 HTTP API 的等效部分,因此所有这些键在此处都不再记录。然而,HTTP API 返回的指标比标准的 CLI 工具 和 rabbitmqadmin v2 都要多。
_details 对象
许多字段代表某种计数:队列长度、已确认消息、已接收字节数等等。HTTP API 返回的此类绝对计数通常会有一个相应的 _details 对象,该对象提供有关此计数如何变化的有关信息。例如,来自队列的
"messages": 123619,
"messages_details": {
"avg": 41206.333333333336,
"avg_rate": 1030.1583333333333,
"rate": 24723.8,
"samples": [
{
"sample": 123619,
"timestamp": 1400680560000
},
{
"sample": 0,
"timestamp": 1400680500000
},
{
"sample": 0,
"timestamp": 1400680440000
}
]
}
在这里,我们有一个 messages 计数(队列中的总消息数),以及一些附加数据:
avg | 请求时间段内的平均值(见下文)。 |
avg_rate | 请求时间段内的平均速率。 |
rate | 在最近的采样间隔内,计数每秒的变化量。 |
samples | 显示值在请求时间段内如何变化的快照。 |
avg、avg_rate 和 samples 仅在您通过向 URL 追加查询参数来请求特定时间段时才会出现。要做到这一点,您需要为所需的样本设置一个年龄和一个增量。返回范围的结尾将始终对应于当前。
不同类型的数据需要不同的查询参数来返回样本,如以下表格所示。您可以指定多个参数集,因为您请求的资源可以生成多种类型的样本(例如,队列可以返回消息速率和队列长度)。
| 发送和接收的消息 | msg_rates_age / msg_rates_incr |
| 发送和接收的字节数 | data_rates_age / data_rates_incr |
| 队列长度 | lengths_age / lengths_incr |
| 节点统计信息(例如,文件描述符、可用磁盘空间) | node_stats_age / node_stats_incr |
例如,追加 ?lengths_age=3600&lengths_incr=60 将返回过去一小时的队列长度数据,每分钟一个样本。
message_stats 对象
许多对象(包括队列、交换器和通道)会返回通过它们的计数。这些包含在 message_stats 对象中(该对象又包含每个计数的 _details 对象,如上所述)。
这些可能包含:
publish | 已发布的消息计数。 |
publish_in | 发布到交换器的“入站”消息计数,即不考虑路由。 |
publish_out | 从交换器“出站”的消息计数,即考虑路由。 |
confirm | 已确认的消息计数。 |
deliver | 在确认模式下发送给消费者的消息计数。 |
deliver_no_ack | 在无确认模式下发送给消费者的消息计数。 |
get | 响应 basic.get 在确认模式下发送的消息计数。 |
get_no_ack | 响应 basic.get 在无确认模式下发送的消息计数。 |
deliver_get | 以上四种的 sum。 |
redeliver |
|
drop_unroutable | 因无法路由而被丢弃的消息计数。 |
return_unroutable | 因无法路由而被退回给发布者的消息计数。 |
只有发生活动的字段才会出现。
详细消息统计对象
此外,队列、交换器和通道可以返回每个相邻对象的(即,通道 -> 交换器 -> 队列 -> 通道的相邻对象)消息统计的细分。这仅在 rates_mode 配置项已从默认的 basic 切换到 detailed 时才会发生。
由于这可能构成大量数据,因此也仅在查询单个通道、队列或交换器而不是列表时才返回。另请注意,默认的样本保留策略意味着这些详细消息统计不保留超过几秒的历史数据。
详细的消息统计对象名称取决于它们的位置(下面有说明)。每组详细统计信息都包含一个对象列表,每个对象有两个字段:一个用于标识伙伴对象,另一个名为 stats,它是一个如上所述的 message_stats 对象。
下面是一个示例片段
"incoming": [
{
"stats": {
"publish": 352593,
"publish_details": {
"rate": 100.2
}
},
"exchange": {
"name": "my-exchange",
"vhost": "/"
}
}
{
"stats": {
"publish": 543784,
"publish_details": {
"rate": 54.6
}
},
"exchange": {
"name": "amq.topic",
"vhost": "/"
}
}
],
此队列当前正在接收来自两个交换器的消息:来自“my-exchange”的 100.2 条消息/秒,来自“amq.topic”的 54.6 条消息/秒。
/api/overview
此 API 包含以下字段
cluster_name | 整个集群的名称,通过 |
contexts | 集群中 Web 应用程序上下文的列表。 |
erlang_full_version | 一个字符串,包含已连接节点的 Erlang VM 的详细信息以及编译方式。 |
erlang_version | 一个字符串,包含已连接节点的 Erlang 版本。由于集群应运行相同版本,因此此信息可代表整个集群。 |
exchange_types | 所有可用交换器类型的列表。 |
listeners | 集群中所有节点的(非 HTTP)网络监听器。(HTTP 请参见 |
management_version | 使用的管理插件版本。 |
message_stats | 一个 message_stats 对象,包含用户可以看到的所有内容——对于所有 vhost,无论权限如何(对于 |
节点 | 此管理插件实例运行所在的集群节点的名称。 |
object_totals | 一个对象,包含所有连接、通道、交换器、队列和消费者的全局计数,受 |
queue_totals | 一个对象,包含所有队列的 |
rabbitmq_version | 处理此请求的节点上的 RabbitMQ 版本。 |
rates_mode | 'none', 'basic' 或 'detailed'。 |
statistics_db_event_queue | 待由数据库处理的统计事件数量。 |
statistics_db_node | 托管管理统计数据库的集群节点的名称。 |
/api/nodes
此 API 包含以下字段
applications | 节点上运行的所有 Erlang 应用程序列表。 |
auth_mechanisms | 节点上安装的所有 SASL 认证机制列表。 |
cluster_links | 集群中其他节点的列表。对于每个节点,都包含用于连接它的 TCP 连接的详细信息以及已传输数据的统计信息。 |
config_files | 节点读取的配置文件列表。 |
contexts | 节点上所有 HTTP 监听器的列表。 |
db_dir | 节点使用的持久化存储的位置。 |
disk_free | 磁盘可用空间(以字节为单位)。 |
disk_free_alarm | 磁盘警报是否已触发。 |
disk_free_limit | 磁盘警报将触发的点。 |
enabled_plugins | 明确启用且正在运行的插件列表。 |
exchange_types | 节点上可用的交换器类型。 |
log_files | 节点使用的日志文件列表。如果节点还将消息发送到 stdout,则列表中还会报告“ |
mem_used | 内存使用量(以字节为单位)。 |
mem_alarm | 内存警报是否已触发。 |
mem_limit | 内存警报将触发的点。 |
name | 节点名称。 |
net_ticktime | 节点当前的内核 net_ticktime 设置。 |
os_pid | 此节点运行的操作系统进程标识符。 |
partitions | 此节点看到的网络分区列表。 |
proc_total | Erlang 进程的最大数量。 |
proc_used | 正在使用的 Erlang 进程数量。 |
rates_mode | 'none', 'basic' 或 'detailed'。 |
run_queue | 等待运行的 Erlang 进程的平均数量。 |
running | 此节点是否正在运行的布尔值。如果为 false,则大多数其他统计信息将缺失。 |
type | 'disc' 或 'ram'。 |
uptime | Erlang VM 启动以来的时间(以毫秒为单位)。 |
processors | RabbitMQ 使用的逻辑 CPU 核心数量。 |
/api/nodes/(name)
以上所有内容,外加
memory | 详细的内存使用统计信息。仅当 URL 附加 |
binary | 二进制内存所有者的详细分类。仅当 URL 附加 |
/api/connections
/api/connections/(name)
请参见 rabbitmqctl list_connections 的文档。无额外字段,但 pid 被替换为 node。
另请注意,虽然非 AMQP 连接也会出现在此列表中(与 rabbitmqctl list_connections 不同),但它们会省略许多连接级别的统计信息。
/api/connections/(name)/channels
/api/channels
请参见 rabbitmqctl list_channels 的文档,其中 pid 被替换为 node,外加
connection_details | 有关所属连接的一些基本详细信息。 |
message_stats | 请参阅上面关于 message_stats 的部分。 |
/api/channels/(name)
以上所有内容,外加
publishes | 发送到交换器的详细消息统计信息(参见上面部分)。 |
deliveries | 从队列传递的详细消息统计信息。 |
consumer_details | 此通道上的消费者列表,包含每个消费者的部分详细信息。 |
/api/exchanges
/api/exchanges/(vhost)
请参见 rabbitmqctl list_exchanges 的文档,外加
message_stats | 请参阅上面关于 message_stats 的部分。 |
/api/exchanges/(vhost)/(name)
以上所有内容,外加
incoming | 从通道发布到此交换器的详细消息统计信息(参见上面部分)。 |
outgoing | 从此交换器发布到队列的详细消息统计信息。 |
/api/queues
当使用 disable_stats 和 enable_queue_totals 的查询参数组合时,此查询返回以下字段
name | 队列的名称。 |
vhost | 虚拟主机的名称。 |
type | 队列的类型。 |
节点 | 根据队列类型,这是持有队列或托管领导者的节点。 |
state | 队列的状态。 |
arguments | 队列的参数。 |
auto_delete |
|
durable |
|
exclusive |
|
messages | 队列中的消息总数。 |
messages_ready | 队列中准备好传递的消息数量。 |
messages_unacknowledged | 队列中等待确认的消息数量。 |
/api/queues/(vhost)
请参见 rabbitmqctl list_queues 的文档,其中所有对 pid 的引用都被替换为 node,外加
message_stats | 请参阅上面关于 message_stats 的部分。 |
/api/queues/(vhost)/(name)
以上所有内容,外加
incoming | 从交换器发布到此队列的详细消息统计信息(参见上面部分)。 |
deliveries | 从此队列传递到通道的详细消息统计信息。 |
consumer_details | 此通道上的消费者列表,包含每个消费者的部分详细信息。 |
/api/vhosts/
/api/vhosts/(name)
rabbitmqctl list_vhosts 的所有字段(即 name 和 tracing),外加
message_stats | 此 vhost 的全局 message_stats。请注意,即使是没有 |
messages messages_ready messages_acknowledged | vhost 中所有队列的这些字段的总和。 |
recv_oct send_oct | 发送到 vhost 的所有连接的这些字段的总和。 |
分页参数
分页可应用于列出以下内容的端点
- queues
- exchanges
- connections
- channels
不带分页,这些端点会产生非常大的 JSON 响应,并浪费大量带宽和 CPU 资源。
默认页大小为 100,最大支持页大小为 500。
以下是可以使用的查询参数。
参数名称数据类型描述page | 正整数 | 页码 |
page_size | 正整数 | 每页元素数量(默认值:100,最大支持值:500) |
name | 字符串 | 按名称过滤,例如队列名称、交换器名称等。 |
use_regex | 布尔值 | 为 param name 启用正则表达式 |
示例
https://:15672/api/queues?page=1&page_size=50 | 获取包含 50 个元素的第一个队列页。 |
https://:15672/api/queues/my-vhost?page=1&page_size=100&name=&use_regex=false&pagination=true | 过滤虚拟主机“my-vhost”的第一个队列页。 |
https://:15672/api/exchanges?page=1&page_size=100&name=%5Eamq&use_regex=true&pagination=true | 过滤第一个交换器页,包含 100 个元素,名称使用正则表达式“^amq”进行过滤。 |