128
阿里云
根据 MsgID 查询消息__消息管理相关接口_Open API_消息队列 MQ-阿里云
本文介绍 OnsMessageGetByMsgId 接口,该接口通过传入 MsgId 查询指定消息的信息,包括发送时间,存储服务器,消息的 Key 和 Tag 等熟悉,以及是否被消费过的判断。
1. 使用场景
消息查询功能用于判断消息是否发送成功,发送时间以及目标服务器等信息。
根据 MsgId 查询消息属于精确查询,查询条件需要的 MsgId 由每次发送成功的 SendResult 中获取,因此业务方必须存储每次发送消息的结果。
2. 请求参数列表
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
OnsRegionId | String | 是 | 当前查询 MQ 所在区域,可以通过 OnsRegionList 方法获取 |
OnsPlatform | String | 否 | 该请求来源,默认是从 POP 平台 |
PreventCache | Long | 是 | 用于 CSRF 校验,设置为系统当前时间即可 |
MsgId | String | 是 | 需要查询的消息的 MsgId |
Topic | String | 是 | 需要查询的消息的 Topic |
3. 返回参数列表
名称 | 类型 | 描述 |
---|---|---|
RequestId | String | 为公共参数,每个请求独一无二 |
HelpUrl | String | 帮助链接 |
Data | Data | 查询结果 |
Data 数据结构
名称 | 类型 | 描述 |
---|---|---|
Topic | String | 消息的 Topic |
Flag | Integer | null |
PropertyList | List(MessageProperty) | 消息属性列表 |
Body | String | 消息体 |
StoreSize | Integer | 消息大小 |
BornTimestamp | Long | 生成时间戳 |
BornHost | String | 生成该消息的客户端实例 |
StoreTimestamp | Long | 被服务端存储的时间戳 |
StoreHost | String | 存储该消息的服务器实例 |
MsgId | String | 消息 ID |
BodyCRC | Integer | 消息体 CRC 校验值 |
ReconsumeTimes | Integer | 消息重试消费的次数 |
4. 相关 API
- OnsMessageGetByMsgKey:根据 MsgKey 模糊匹配查询消息
- OnsMessageGetByTopic:根据 Topic 和时间范围查询消息
5. 使用示例
调用示例
public static void main(String []args) {
String regionId = "cn-hangzhou";
String accessKey = "XXXXXXXXXXXXXXXXX";
String secretKey = "XXXXXXXXXXXXXXXXX";
String endPointName ="cn-hangzhou";
String productName ="Ons";
String domain ="ons.cn-hangzhou.aliyuncs.com";
/**
*根据自己需要访问的区域选择Region,并设置对应的接入点
*/
try {
DefaultProfile.addEndpoint(endPointName,regionId,productName,domain);
} catch (ClientException e) {
e.printStackTrace();
}
IClientProfile profile= DefaultProfile.getProfile(regionId,accessKey,secretKey);
IAcsClient iAcsClient= new DefaultAcsClient(profile);
OnsMessageGetByMsgIdRequest request = new OnsMessageGetByMsgIdRequest();
/**
*ONSRegionId是指你需要API访问MQ哪个区域的资源.
*该值必须要根据OnsRegionList方法获取的列表来选择和配置,因为OnsRegionId是变动的,不能够写固定值
*/
request.setOnsRegionId("daily");
request.setPreventCache(System.currentTimeMillis());
request.setAcceptFormat(FormatType.JSON);
request.setMsgId("0ADA91A600002A9F000002ADDA8137E8");
request.setTopic("TopicTest");
try {
OnsMessageGetByMsgIdResponse response = iAcsClient.getAcsResponse(request);
OnsMessageGetByMsgIdResponse.Data data =response.getData();
byte[] msgbody= Base64.decode(data.getBody());
String message= new String(msgbody);
System.out.println(data.getTopic()+" "+
message+" "+
data.getFlag()+" "+
data.getBornHost()+" "+
data.getStoreSize()+" "+
data.getStoreHost()+" "+
data.getStoreTimestamp()+" “+
data.getReconsumeTimes());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
最后更新:2016-11-23 16:04:04
上一篇:
根据 Key 查询消息__消息管理相关接口_Open API_消息队列 MQ-阿里云
下一篇:
根据 Topic 查询消息__消息管理相关接口_Open API_消息队列 MQ-阿里云
查询模板信息__模板相关接口_API 文档_资源编排-阿里云
阿里云入股,高度产品化的ZStack切入混合云市场
功能说明-DNAT__NAT网关产品简介_用户指南_专有网络 VPC-阿里云
EDAS 账号体系介绍__账号管理_用户指南_企业级分布式应用服务 EDAS-阿里云
查询推送列表__查询相关_API 列表_OpenAPI 2.0_移动推送-阿里云
采集-IIS访问日志__最佳实践_日志服务-阿里云
修改文件类型缓存策略__配置操作接口_API 手册_CDN-阿里云
授权资源组__账号管理类 API_Open API 参考_企业级分布式应用服务 EDAS-阿里云
FailReason__数据类型_API参考_E-MapReduce-阿里云
变更RDS实例规格__实例管理_API 参考_云数据库 RDS 版-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云