943
英雄聯盟
根據 Key 查詢消息__消息管理相關接口_Open API_消息隊列 MQ-阿裏雲
本文檔介紹 OnsMessageGetByMsgKey 接口,該接口通過傳入 Topic 和 MsgKey 進行模煳查詢,得到符合條件的消息的信息列表。
1. 使用場景
根據 MsgKey 查詢消息屬於模煳查詢,由於業務方的 key 可能不唯一,所以查詢結果可能為多條。一般用在業務方無法獲取 MsgId 的場景下,先進行模煳查詢得到 msgId 列表,再調用 OnsMessageGetByMsgId 接口查詢。
2. 請求參數列表
名稱 | 類型 | 是否必須 | 描述 |
---|---|---|---|
OnsRegionId | String | 是 | 當前查詢 MQ 所在區域,可以通過 OnsRegionList 方法獲取 |
OnsPlatform | String | 否 | 該請求來源,默認是從 POP 平台 |
PreventCache | Long | 是 | 用於 CSRF 校驗,設置為係統當前時間即可 |
Topic | String | 是 | 需要查詢的消息的 Topic |
Key | String | 是 | 需要查詢的消息的 MsgKey |
3. 返回參數列表
名稱 | 類型 | 描述 |
---|---|---|
RequestId | String | 為公共參數,每個請求獨一無二 |
HelpUrl | String | 幫助鏈接 |
Data | List(OnsRestMessageDo) | 查詢結果 |
OnsRestMessageDo 數據結構
名稱 | 類型 | 描述 |
---|---|---|
Topic | String | 消息的 Topic |
Flag | Integer | null |
PropertyList | List(MessageProperty) | 消息屬性列表 |
Body | String | 消息體 |
StoreSize | Integer | 消息大小 |
BornTimestamp | Long | 生成時間戳 |
BornHost | String | 生成該消息的客戶端實例 |
StoreTimestamp | Long | 被 Broker 存儲的時間戳 |
StoreHost | String | 存儲該消息的服務器實例 |
MsgId | String | 消息 ID |
BodyCRC | Integer | 消息體 CRC 校驗值 |
ReconsumeTimes | Integer | 消息重試消費的次數 |
4. 相關 API
- OnsMesageGetByMsgId:根據 MsgId 精確查詢消息
- 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);
OnsMessageGetByKeyRequest request = new OnsMessageGetByKeyRequest();
/**
*ONSRegionId是指你需要API訪問MQ哪個區域的資源.
*該值必須要根據OnsRegionList方法獲取的列表來選擇和配置,因為OnsRegionId是變動的,不能夠寫固定值
*/
request.setOnsRegionId("daily");
request.setPreventCache(System.currentTimeMillis());
request.setAcceptFormat(FormatType.JSON);
request.setTopic("MingduanTest");
request.setKey("hello");
try {
OnsMessageGetByKeyResponse response = iAcsClient.getAcsResponse(request);
List<OnsMessageGetByKeyResponse.OnsRestMessageDo> onsRestMessageDoList=response.getData();
for(OnsMessageGetByKeyResponse.OnsRestMessageDo onsRestMessageDo:onsRestMessageDoList){
byte[] messageBody = Base64.decode(onsRestMessageDo.getBody());
String message =new String (messageBody);
System.out.println(onsRestMessageDo.getTopic()+" "+message+" "+
onsRestMessageDo.getFlag()+" "+
onsRestMessageDo.getBornHost()+" "+
onsRestMessageDo.getStoreSize()+" "+
onsRestMessageDo.getStoreHost()+" "+
onsRestMessageDo.getStoreTimestamp()+" "+
onsRestMessageDo.getReconsumeTimes());
}
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
最後更新:2016-11-23 16:04:04
上一篇:
消息軌跡查詢__消息管理相關接口_Open API_消息隊列 MQ-阿裏雲
下一篇:
根據 MsgID 查詢消息__消息管理相關接口_Open API_消息隊列 MQ-阿裏雲
阿裏雲流計算服務協議__相關協議_平台介紹_數加平台介紹-阿裏雲
性能壓測注意事項__快速入門_雲數據庫 HybridDB-阿裏雲
TableInBatchGetRowResponse__DataType_API 參考_表格存儲-阿裏雲
啟停應用__應用管理_用戶指南_容器服務-阿裏雲
拍照照片要求__當麵核驗_備案流程_備案-阿裏雲
獲取訪問者真實IP___常見接入問題_Web 應用防火牆-阿裏雲
創建自定義鏡像__鏡像相關接口_API 參考_雲服務器 ECS-阿裏雲
產品與技術__產品簡介_數據集成-阿裏雲
編譯__用戶手冊_持續交付平台-阿裏雲
命令輸出格式__命令行結構和參數_用戶指南_命令行工具 CLI-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲