RabbitMQ Management 插件不仅提供了 Web 管理界面,还提供了 HTTP API 接口。
#创建队列
比如创建一个队列,可以通过 PUT 方法调用 /api/queues/vhost/name 实现
[root@study ~]# curl -i -u admin:root -H "content-type:application/json" -XPUT -d '{"auto_delete":false,"durable":true,"node":"rabbit@study"}' http://192.168.4.250:15672/api/queues/%2F/queueHTTP/1.1 201 Createdserver: Cowboydate: Mon, 29 Jun 2020 02:04:22 GMTcontent-length: 0content-type: application/jsonvary: accept, accept-encoding, origin# rabbit@study 是你的 rabbitmq 节点,可以通过 rabbitmqctl status 查看到# %2F:就是 / 这个是个特殊符号,所以转移了,默认 vhost 就是 /Copied!
1
2
3
4
5
6
7
8
9
10
11
对于 -u 和 oath 类似,使用的是 HTTP 基础认证。
这里的 HTTP API 是完全基于 RESTful 风格的。
- GET 方法一般用来获取集群、节点、队列、交换器等信息
- PUT 方法用来创建资源:如交换器、队列之类
- DELETE 方法用来删除资源
- POST 方法也是用来创建资源与 PUT 不同的是,POST 创建的是无法用具体名称的资源。比如绑定关系、和发布消息无法指定一个具体的名称
#获取队列信息
下面展示使用 GET 来获取前面创建的队列
[root@study ~]# curl -i -u admin:root -XGET http://192.168.4.250:15672/api/queues/%2F/queueHTTP/1.1 200 OKserver: Cowboydate: Mon, 29 Jun 2020 02:05:03 GMTcontent-length: 1275content-type: application/jsonvary: accept, accept-encoding, origincache-control: no-cache{"consumer_details":[],"incoming":[],"deliveries":[],"messages_details":{"rate":0.0},"messages":0,"messages_unacknowledged_details":{"rate":0.0},"messages_unacknowledged":0,"messages_ready_details":{"rate":0.0},"messages_ready":0,"reductions_details":{"rate":0.0},"reductions":2038,"node":"rabbit@study","arguments":{},"exclusive":false,"auto_delete":false,"durable":true,"vhost":"/","name":"queue","message_bytes_paged_out":0,"messages_paged_out":0,"backing_queue_status":{"mode":"default","q1":0,"q2":0,"delta":["delta","undefined",0,0,"undefined"],"q3":0,"q4":0,"len":0,"target_ram_count":"infinity","next_seq_id":0,"avg_ingress_rate":0.0,"avg_egress_rate":0.0,"avg_ack_ingress_rate":0.0,"avg_ack_egress_rate":0.0},"head_message_timestamp":null,"message_bytes_persistent":0,"message_bytes_ram":0,"message_bytes_unacknowledged":0,"message_bytes_ready":0,"message_bytes":0,"messages_persistent":0,"messages_unacknowledged_ram":0,"messages_ready_ram":0,"messages_ram":0,"garbage_collection":{"minor_gcs":0,"fullsweep_after":65535,"min_heap_size":233,"min_bin_vheap_size":46422,"max_heap_size":0},"state":"running","recoverable_slaves":null,"consumers":0,"exclusive_consumer_tag":null,"policy":null,"consumer_utilisation":null,"idle_since":"2020-06-29 1:51:47","memory":10792}Copied!
1
2
3
4
5
6
7
8
9
10
#删除队列
[root@study ~]# curl -i -u admin:root -XDELETE http://192.168.4.250:15672/api/queues/%2F/queueHTTP/1.1 204 No Contentserver: Cowboydate: Mon, 29 Jun 2020 02:06:44 GMTcontent-length: 0content-type: application/jsonvary: accept, accept-encoding, originCopied!
1
2
3
4
5
6
7
#完整 API
这可以访问 web 管理界面的 API 端点获取
http://192.168.4.250:15672/apiCopied!
1
这里就不记录书上完整的列表了。
WEB API 通常方便客户端调用。在命令行有类似的工具 :rabbitmqadmin
#rabbitmqadmin
需要你安装该工具(是一个专用的 HTTP 客户端),从 官方下载,也可以通过本机 api 下载
http://{hostname}:15672/cli/rabbitmqadminCopied!
1
笔者这里通过如下方式下载
[root@study ~]# wget http://192.168.4.250:15672/cli/rabbitmqadmin--2020-06-29 10:30:31-- http://192.168.4.250:15672/cli/rabbitmqadmin正在连接 192.168.4.250:15672... 已连接。已发出 HTTP 请求,正在等待回应... 200 OK长度:37698 (37K) [application/octet-stream]正在保存至: “rabbitmqadmin”100%[===========================================================================================================================================================>] 37,698 --.-K/s 用时 0s2020-06-29 10:30:31 (739 MB/s) - 已保存 “rabbitmqadmin” [37698/37698])# 添加执行权限[root@study ~]# chmod +x rabbitmqadmin# 如果使用中出现不能使用的情况,可能是缺少 Python,版本为 2.x;# 版本根据你用的 RabbitMQ 版本不同而不同,上面官方页面也介绍了Copied!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
就可以通过该工具访问了,如下
# 创建 queue1 的队列[root@study ~]# ./rabbitmqadmin -u admin -p root declare queue name=queue1queue declared# 查看队列列表[root@study ~]# ./rabbitmqadmin list queues+------------+----------+| name | messages |+------------+----------+| queue1 | 0 || queue2 | 0 || queue33 | 0 || queue_demo | 149 |+------------+----------+Copied!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
还可以通过 —help 来自力更生,查看支持哪些语法参数
[root@study ~]# ./rabbitmqadmin --helpUsage=====rabbitmqadmin [options] subcommandOptions=======--help, -h show this help message and exit--config=CONFIG, -c CONFIGconfiguration file [default: ~/.rabbitmqadmin.conf]--node=NODE, -N NODE node described in the configuration file [default:'default' only if configuration file is specified]--host=HOST, -H HOST connect to host HOST [default: localhost]--port=PORT, -P PORT connect to port PORT [default: 15672]...
