RabbitMQ通过HTTP API获取队列消息内容

本文介绍了如何通过RabbitMQ的HTTP API在前端实现队列监控和内容预览。文章讨论了两种方案,选择了使用HTTP API的方式,以避免额外依赖和稳定性问题。文中还详细说明了API认证、消息解码和反序列化的实现过程,并展示了最终的监控效果。
摘要由CSDN通过智能技术生成

RabbitMQ通过HTTP API获取队列消息内容

背景

为配合公司数据中台建设,我们对公司内部使用的mysql binlog数据分发中间件(现已开源:https://gitee.com/kekingcn/keking-binlog-distributor )进行定制化改造,使其能够同时支持redis和rabbitmq两个分发渠道,并能在前端页面监控队列长度、队列消息内容等信息

需求

由于之前已经完成后端分发功能、redis队列监控的开发,目前需要前端同时支持rabbitmq队列监控,并需要能够预览队列中的内容

方案选择

要在前端实现显示rabbitmq队列及队列内容,有如下两种实现方案:

  • 后端主服务使用rabbitmq客户端,使用amqpadmin读取当前vhost下队列列表,注册消费方,消费队列且不发送ACK确认,让其重新入队列
  • 后端主服务通过rabbitmq提供的HTTP API直接获取队列列表,和队列中的内容(rabbitmq前台管理页面就是通过HTTP API获取的队列列表和获取队列内消息)

对比两种方案,发现前者存在两点劣势:

  1. 主服务需要额外依赖rabbitmq客户端,且ampqadmin需要有管理员权限的账号和密码
  2. 主服务需要和业务系统同时消费队列数据,编码不当可能给整个系统带来稳定性问题,且消费数据不发送ACK确认应答不太合理
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值