rocketMQ 消息查询(id,key) 运维命令以及java API的用法
来源:互联网 发布:如何查询域名信息 编辑:程序博客网 时间:2024/06/11 04:13
RocketMq是一个纯Java、分布式、队列模型的的开源的消息中间件,但是目前相关的资料较少,所以出现了问题很难找到解决方案。
1、MQ 消息生产:http://blog.csdn.net/luckyzhoustar/article/details/51286559
2、MQ 消息订阅:http://blog.csdn.net/luckyzhoustar/article/details/51286560
在使用过程中,需要用查询生产的消息,可以根据Key和Id查询消息。
一、根据key查询消息
1、运维命令
文档:
指令
queryMsgByKey
类路径
com.alibaba.rocketmq.tools.command.message.QueryMsgByKeySubCommand
参数
是否必填
说明
-f
否
被查询消息的截止时间
-k
是
msgKey
-t
是
Topic名称
-h
否
打印帮助
-n
是
nameserve服务地址列表,格式ip:port;ip:port;...
举例
查询Topic= ZTEExample下key= SimpleTest-1的消息,nameserve地址为10.45.47.168:9876
sh mqadmin queryMsgByKey -n 10.45.47.168:9876 -t ZTEExample -k SimpleTest-1
打印内容:
#Message ID #QID #Offset
0A2D2FA800002A9F0000000000000000 0 0
2、实例:
3、结果:可以得到消息的这个key下面所有的msgId,然后可以通过查询到的id在定位到具体消息
二、根据msgId查询消息
1、文档:
指令
queryMsgById
类路径
com.alibaba.rocketmq.tools.command.message.QueryMsgByIdSubCommand
参数
是否必填
说明
-i
是
msgId
-h
否
打印帮助
-n
是
nameserve服务地址列表,格式ip:port;ip:port;...
举例
查询msgId= 0A2D2FA800002A9F0000000000000000的消息,nameserve地址为10.45.47.168:9876
sh mqadmin queryMsgById –n 10.45.47.168:9876 –i 0A2D2FA800002A9F0000000000000000
打印内容:
Topic: ZTEExample
Tags: [SimpleTest]
Keys: [SimpleTest-1]
Queue ID: 0
Queue Offset: 0
CommitLog Offset: 0
Born Timestamp: 2014-02-26 14:49:10,875
Store Timestamp: 2014-02-26 14:48:44,840
Born Host: 10.45.46.229:4231
Store Host: 10.45.47.168:10911
System Flag: 0
Properties: {TAGS=SimpleTest, KEYS=SimpleTest-1, WAIT=true}
Message Body Path: /tmp/rocketmq/msgbodys/0A2D2FA800002A9F0000000000000000
2、实例:
3、结果:
通过ID查询到消息,可以看到消息的存放路径,和该消息的相关信息,已经该消息的消费状态。
通过API 方式调用查询消息。通过此功能可以在源码的基础上,自己封装成页面,查询每条消息的生命周期。
一、根据Key查询消息
DefaultMQProducer 类中有提供 queryMessage 方法,
但是方法中需要的参数,maxNum,bengin,end 在没有注释的情况下,并不知道具体传什么参数,在阅读源码后,
begin和end 需要的是时间戳格式,所以确认传入的应该是查询时间。同时通过key可以查询多个msgId,maxNum应该的查询个数。
尝试当前时间前后两小时 该KEY下面的100条数据。
当时返回结果为null。失败。。。。
github,oschina,官方文档在查询无果之后,最后上了阿里云,查询和rocketMQ收费版的ONS文档,
在查询消息的文档中发现很重要的一句话
贴上原文地址:https://help.aliyun.com/document_detail/29540.html?spm=5176.doc29536.6.107.HVVHro
查询数量不能超过64条,修改maxNum为10.
成功查询到刚刚丢进去的消息。。。
根据ID查询相对简单,
调用此方法可以直接查询到。。。
- rocketMQ 消息查询(id,key) 运维命令以及java API的用法
- rocketMQ 消息查询(id,key) 运维命令以及java API的用法
- rocketMQ 消息查询(id,key) 运维命令以及java API的用法
- rocketMQ消息堆积监控的java实现
- Rocketmq 消息的解压缩
- RocketMQ的Push消息
- RocketMQ的消息存储
- 7.RocketMQ 关键特性之消息查询
- rocketmq消息的简单示例
- rocketmq事务消息的理解
- 必知必会的RocketMQ消息类型
- 必知必会的RocketMQ消息类型
- RocketMQ及分布式消息系统的原理以及重要问题解读
- RocketMQ存储篇——Config文件以及执行延迟消息的线程服务
- java客户端使用RocketMQ 消息队列
- JAVA反射API以及常见用法
- 申请Android Maps API Key,以及出现的错误
- rocketMq的消息的生产和消费
- RUP,极限编程(xp),敏捷过程简介
- CentOS7安装VMware Tools的方法、屏幕小问题
- QT 获取IP地址
- Struts2的工作流程(或者工作原理)
- Android Studio创建不同分辨率的图标
- rocketMQ 消息查询(id,key) 运维命令以及java API的用法
- _mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h':问题的解决
- 纯css写弹窗 html
- 内存泄漏的场景及解决办法
- @Resource、@Autowired、@Qualifier的注解注入及区别
- Axios请求配置参数详解
- 第二周第2次课
- LeetCode #23
- LeetCode-48-Rotate Image 矩阵旋转90