业务上基于 rabbitmq 的延迟队列插件实现延迟队列功能,由于延迟未发送的消息是存储在 exchange 中,只有消息到期后才会被路由到对应的队列中。所以要关注下 exchange 中延迟未发送的消息数量,以免堆积太多造成影响。
有两种方式可以查看 exchange 中未发送的消息数量,一个是通过 rabbitmq web ui 查看,一个是调用 rabbitmq api 查看,接下来我分别介绍下查看方法。
通过 web ui 查看
直接登录到 rabbitmq web ui 后台,然后切换到 [Exchanges] 页面,点击进入到对应的 exchange 中,查看 
需要注意的时,如果非延迟队列交换机,是不会显示
通过 api 查看
通过如下请求即可获取 rabbitmq 中所有 vhost 下所有延迟队列 exchange 中延迟消息的数量。注意账号密码要改成自己对应 rabbitmq 的账号密码。
curl -s -u username:password -X GET http://192.168.1.66:15672/api/exchanges | jq -c '.[] | select(.type == "x-delayed-message") | {vhost, name, "messages_delayed"}'
{"vhost":"test","name":"zcy.delay","messages_delayed":2024}
本文采用 知识共享署名4.0 国际许可协议进行许可。
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。
如果您的问题未解决,欢迎微信扫描右侧二维码与我联系。