RabbitMQ如何直接查看队列中消息的内容

 更新时间:2026年01月07日 09:37:41   作者:happy_king_zi  
RabbitMQ是一款基于AMQP协议的开源消息中间件,支持异步通信、消息路由和可靠性保障,这篇文章主要介绍了RabbitMQ如何直接查看队列中消息的内容的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

1. 使用 RabbitMQ 管理控制台查看队列中有多少消息(非内容)

打开 RabbitMQ 的 Web 管理界面(默认地址):

http://<your_host>:15672

  • 登录后,点击左侧菜单栏 "Queues"

  • 点击你要查看的队列,比如 my_queue

  • 可以看到:

    • 当前积压的消息数量(Ready)

    • 消费情况

    • 看不到具体消息的内容

2. 使用rabbitmqadminCLI 工具(有限查看)

你可以用 rabbitmqadmin 工具获取队列中的前几条消息内容。

安装rabbitmqadmin

下载地址:

http://<your_host>:15672/cli/rabbitmqadmin

安装后使用如下命令查看:

rabbitmqadmin get queue=my_queue requeue=false count=1
  • queue=my_queue:要查看的队列名

  • count=1:获取几条消息

  • requeue=false:消息不会重新放回队列(会被消费掉!)

警告:这会“取出”消息,相当于消费了它,如果设置 requeue=false,消息就被丢弃了。

3. 用消费者代码“偷看”队列消息(推荐用于开发)

编写一个只消费不处理的临时消费者,把消息 body 打印出来。

例如:用 Python pika

import pika
​
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
​
def callback(ch, method, properties, body):
    print(f"Received message: {body}")
    # 不 ack,这样消息不被删除
    ch.basic_nack(delivery_tag=method.delivery_tag, requeue=True)
​
channel.basic_consume(queue='my_queue', on_message_callback=callback, auto_ack=False)
print('Waiting for messages...')
channel.start_consuming()

这个方式可以“偷看”消息但不删除(通过 basic_nack + requeue=True 实现)

4. 创建一个“镜像队列”来观察消息副本

你可以创建一个新的队列,绑定到相同的 Exchange,这样你可以观察一份“副本”:

# 新建队列
rabbitmqadmin declare queue name=debug_queue
​
# 绑定到生产者使用的 exchange(如 direct/topic)
rabbitmqadmin declare binding source=my_exchange destination=debug_queue routing_key=my_routing_key

然后监听 debug_queue 打印内容。

5. 使用插件或第三方工具(慎用)

一些社区插件如:

  • rabbitmq_message_dump

  • 自定义的 UI 工具(非官方)

这些插件可以用于查看消息体内容,但通常:

  • 不支持高并发环境

  • 安全风险较高

  • 官方不推荐在生产环境使用

RabbitMQ 为什么不提供消息内容查看?

RabbitMQ 的设计哲学:

  • 消息是短暂的、要尽快被消费的

  • 查看消息内容 = 消费消息(或拦截)

  • 性能优先,不持久化内容以供查看

所以如果你需要审计或存档消息,建议:

  • 让 Producer 同时把消息写入日志或数据库

  • 使用 “死信队列” 存放失败消息供人工分析

  • 使用类似 Kafka 的系统做消息回溯

总结:查看队列消息内容的方法

方法是否可看内容是否影响队列用途
RabbitMQ Web UI查看队列状态
rabbitmqadmin get✅(会消费)小量调试
临时消费者脚本❌(不 ack)安全调试
镜像队列观察生产调试
插件工具⚠️不推荐实验性

到此这篇关于RabbitMQ如何直接查看队列中消息内容的文章就介绍到这了,更多相关RabbitMQ查看队列消息内容内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot集成Flink-CDC实现对数据库数据的监听

    SpringBoot集成Flink-CDC实现对数据库数据的监听

    文章主要介绍了CDC的概念、Flink-CDC的功能以及如何在SpringBoot中集成Flink-CDC进行数据变更捕获,文中详细描述了所需环境配置、集成步骤、代码实现等,需要的朋友可以参考下
    2026-04-04
  • Java双重校验锁单例原理

    Java双重校验锁单例原理

    大家好,本篇文章主要讲的是Java双重校验锁单例原理,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • Java 8 Stream流强大的原理

    Java 8 Stream流强大的原理

    这篇文章主要介绍了Java 8 Stream流强大的原理,Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。本文会对Stream的实现原理进行剖析,具有一定的参考价值,需要的朋友可以参考一下
    2021-12-12
  • Spring MVC文件上传大小和类型限制以及超大文件上传bug问题

    Spring MVC文件上传大小和类型限制以及超大文件上传bug问题

    这篇文章主要介绍了Spring MVC文件上传大小和类型限制以及超大文件上传bug问题,非常具有实用价值,需要的朋友可以参考下
    2017-10-10
  • 常用校验注解之@NotNull,@NotBlank,@NotEmpty的区别及说明

    常用校验注解之@NotNull,@NotBlank,@NotEmpty的区别及说明

    这篇文章主要介绍了常用校验注解之@NotNull,@NotBlank,@NotEmpty的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Spring Boot自定义监控指标的详细过程

    Spring Boot自定义监控指标的详细过程

    这篇文章主要介绍了Spring Boot如何自定义监控指标 ,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • Spring boot2+jpa+thymeleaf实现增删改查

    Spring boot2+jpa+thymeleaf实现增删改查

    这篇文章主要介绍了Spring boot2+jpa+thymeleaf实现增删改查,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Java利用@SneakyThrows注解提升异常处理效率详解

    Java利用@SneakyThrows注解提升异常处理效率详解

    这篇文章将深度剖析@SneakyThrows的原理,用法,适用场景以及隐藏的陷阱,看看它如何让Java异常处理效率飙升50%,感兴趣的小伙伴可以跟随小编一起了解一下
    2025-08-08
  • 对Netty组件的基本介绍

    对Netty组件的基本介绍

    这篇文章主要介绍了对Netty组件的基本介绍,Netty是基于Java NIO client-server的网络应用框架,使用Netty可以快速开发网络应用,本文涵盖了netty开发中主要的组件的介绍,需要的朋友可以参考下
    2021-06-06
  • Dubbo注解方式数据校验支持详解

    Dubbo注解方式数据校验支持详解

    这篇文章主要介绍了JavaBeanValidation规范的三个主要版本JSR303、JSR349和JSR380,以及它们在SpringMVC中的应用,文章还介绍了如何进行嵌套校验和自定义校验,并以DubboRPC参数校验为例,展示了如何在RPC框架中使用BeanValidation进行参数校验
    2026-02-02

最新评论