RabbitMQ通过http API获取队列消息数量等信息

前言

最近在项目运行过程中发现,某些队列消费者宕机,导致消息阻塞,而我们没有及时发现的情况!为解决这种情况,需要我们及时获取队列情况,发现问题及时预警!

API

RabbitMQ提供了HTTP API手册,发现其中有获取队列情况的API。(本地的API手册地址为:http://localhost:15672/api

所有API调用都需要做权限验证,需在请求头部中加入权限验证信息,如下

String auth = username + ":" + password;
BASE64Encoder enc = new BASE64Encoder();
String encoding = enc.encode(auth.getBytes());
httpConn.setRequestProperty("Authorization", "Basic " + encoding);

1.获取所有队列信息

http://host:15672/api/queues

2.获取单个队列信息

http://host:15672/api/queues/vhost/name

host为RabbitMQ部署地址,vhost为队列所在的虚拟主机名,name为队列名。

注意:若队列所在默认虚拟主机,即主机名为"/",请求时需将"/"url转码后("%2f")请求

请求示例:http://localhost:15672/api/queues/%2f/TestSendMsg2

{
    "consumer_details": [],//消费者信息
    "incoming": [],
    "deliveries": [],
    "messages_details": {
        "rate": 0.0
    },
    "messages": 3,//对应消息数量
    "messages_unacknowledged_details": {
        "rate": 0.0
    },
    "messages_unacknowledged": 0,//对应消息数量
    "messages_ready_details": {
        "rate": 0.0
    },
    "messages_ready": 3,//对应消息数量
    "reductions_details": {
        "rate": 0.0
    },
    "reductions": 7189,
    "message_stats": {
        "publish_details": {
            "rate": 0.0
        },
        "publish": 3
    },
    "node": "rabbit@ahy-PC",
    "arguments": {},
    "exclusive": false,
    "auto_delete": false,
    "durable": false,
    "vhost": "/",
    "name": "TestSendMsg2",
    "message_bytes_paged_out": 0,
    "messages_paged_out": 0,
    "backing_queue_status": {
        "avg_ack_egress_rate": 0.0,
        "avg_ack_ingress_rate": 0.0,
        "avg_egress_rate": 0.0,
        "avg_ingress_rate": 0.004635025593395823,
        "delta": [
            "delta",
            "undefined",
            0,
            0,
            "undefined"
        ],
        "len": 3,
        "mode": "default",
        "next_seq_id": 3,
        "q1": 0,
        "q2": 0,
        "q3": 0,
        "q4": 3,
        "target_ram_count": "infinity"
    },
    "head_message_timestamp": null,
    "message_bytes_persistent": 0,
    "message_bytes_ram": 381,
    "message_bytes_unacknowledged": 0,
    "message_bytes_ready": 381,
    "message_bytes": 381,
    "messages_persistent": 0,
    "messages_unacknowledged_ram": 0,
    "messages_ready_ram": 3,
    "messages_ram": 3,
    "garbage_collection": {
        "minor_gcs": 11,
        "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,
    "effective_policy_definition": [],
    "operator_policy": null,
    "policy": null,
    "consumer_utilisation": null,
    "idle_since": "2019-10-12 2:43:46",
    "memory": 12720
}

关于字段对应信息,可自行查看相关文档。

以上只列举两个API,其余API可自行查看文档

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值