rocketMQ 訊息查詢(id,key) 運維命令以及java API的用法
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">MQ相關介紹:http://blog.csdn.net/luckyzhoustar/article/details/51286554</span>
RocketMq是一個純
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、例項:
sh mqadmin queryMsgByKey -n 10.10.4.184:9876 -t SCANRECORD -k b4d83f23-36fe-4890-946c-a2dcccc67572
3、結果:
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
#Message ID #QID #Offset
0A0A04B800002A9F0000005C597BACE1 1 66788391
可以得到訊息的這個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、例項:
[[email protected] bin]# sh mqadmin queryMsgById -n 10.10.4.184:9876 -i 0A0A04B800002A9F0000005C597BACE1
3、結果:
ava HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
Topic: SCANRECORD
Tags: [1]
Keys: [b4d83f23-36fe-4890-946c-a2dcccc67572]
Queue ID: 1
Queue Offset: 66788391
CommitLog Offset: 396638268641
Reconsume Times: 0
Born Timestamp: 2016-08-18 20:18:51,648
Store Timestamp: 2016-08-18 20:19:15,456
Born Host: 10.10.42.177:62899
Store Host: 10.10.4.184:10911
System Flag: 0
Properties: {KEYS=b4d83f23-36fe-4890-946c-a2dcccc67572, WAIT=true, TAGS=1}
Message Body Path: /tmp/rocketmq/msgbodys/0A0A04B800002A9F0000005C597BACE1
MessageTrack [consumerGroup=WOBUXINHAIYOU, trackType=UNKNOW_EXCEPTION, exceptionDesc=com.alibaba.rocketmq.client.exception.MQBrokerException: CODE: 206 DESC: the consumer group[WOBUXINHAIYOU] not online
For more information, please visit the url, https://github.com/alibaba/RocketMQ/issues/48, com.alibaba.rocketmq.client.impl.MQClientAPIImpl.getConsumerConnectionList(MQClientAPIImpl.java:1189)]
通過ID查詢到訊息,可以看到訊息的存放路徑,和該訊息的相關資訊,已經該訊息的消費狀態。
通過API 方式呼叫查詢訊息。通過此功能可以在原始碼的基礎上,自己封裝成頁面,查詢每條訊息的生命週期。
一、根據Key查詢訊息
DefaultMQProducer 類中有提供 queryMessage 方法,
@Override
public QueryResult queryMessage(String topic, String key, int maxNum, long begin, long end)
throws MQClientException, InterruptedException {
return this.defaultMQProducerImpl.queryMessage(topic, key, maxNum, begin, end);
}
但是方法中需要的引數,maxNum,bengin,end 在沒有註釋的情況下,並不知道具體傳什麼引數,在閱讀原始碼後,
begin和end 需要的是時間戳格式,所以確認傳入的應該是查詢時間。同時通過key可以查詢多個msgId,maxNum應該的查詢個數。
QueryResult res =mqProducerBiz.queryMessage(topic, key, 100,
<span style="white-space:pre"> </span>(new Date().getTime()-(2*60*60*1000)),(new Date().getTime()+(2*60*60*1000)));
嘗試當前時間前後兩小時 該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查詢相對簡單,
@Override
public MessageExt viewMessage(String msgId) throws RemotingException, MQBrokerException,
InterruptedException, MQClientException {
return this.defaultMQProducerImpl.viewMessage(msgId);
}
呼叫此方法可以直接查詢到。。。
相關推薦
rocketMQ 訊息查詢(id,key) 運維命令以及java API的用法
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"&g
深圳】誠聘 IT 應用運維工程師(10位) – 運維派
順豐科技是順豐速運集團的定向 IT 服務商。順豐科技擁有超過2000人的IT專業技術隊伍,自主研發獲得專利、軟體著作權600多項。 隨著順豐多元化業務的快速發展和人工智慧的大浪潮,今天的順豐科技不僅需要為整個順豐集團提供高效的IT技術服務,更旨在構建順豐智慧大腦。在無人機、無人駕駛、機器人、人工智
8月12日】運維派 Ops-Day 網際網路運維技術沙龍(報名開始) – 運維派
活動介紹 Ops-Day是由國內最大的民間運維社群——運維派(Yunweipai.com)發起主辦的網際網路運維技術沙龍。 Ops-Day每期沙龍將邀請網際網路運維領域的運維專家,分享傳播運維優秀實踐,旨在提供一個運維人學習成長的交流平臺。 Ops-Day先後在深圳、廣州、廈門等多個城市舉辦了十餘
運維派Ops-Day高效運維專場(深圳站) – 運維派
“運維派Ops-Day”,是由運維派發起主辦的系列技術沙龍,主要包括與雲端計算、網路安全、高可用、分散式、叢集容災、大資料、開源技術等相關的運維主題。 隨著雲端計算、大資料、移動應用等新一代資訊科技的發展,系統規模越來越龐大,運維之艱難無以言表,就連網易、支付寶、攜程等大公司都出現過大面積服務中斷
運維派Ops-Day雲端計算與運維大會(深圳站) – 運維派
“運維派Ops-Day”,是由運維派發起主辦的系列技術沙龍,每月在各大城市巡迴舉辦2期線下技術交流活動,邀請各行業資深技術大牛分享開發經驗以及前沿的熱門技術話題,主要包括與雲端計算、網路安全、高可用、分散式、叢集容災、大資料、開源技術等相關的運維主題。 本次“運維派Ops-Day”邀請了亞馬遜、U
運維與網路安全專場(廈門站) – 運維派
運維派(Yunweipai.com),創辦於2012年,是一個垂直於IT運維領域的技術社群。網站、微信公眾號、QQ群覆蓋數萬名運維和開發工程師,並在華南地區累計舉辦10+場線上和線下技術沙龍。 運維派Ops-Day,是由運維派社群發起主辦的系列技術沙龍,邀請各行業資深技術大牛分享優秀實踐以及前沿的
HAWQ技術解析(十六) —— 運維監控
與任何IT系統一樣,為了保證HAWQ叢集的高可用和高效能,需要進行一系列監控與維護活動。本篇討論HAWQ推薦的運維與監控活動。一、推薦的監控與維護任務 表1至表5是HAWQ向系統管理員推薦定期執行的活動,包括系統與資料庫監控、資料與資料庫的維護、
rocketmq之原始碼分析broker之核心MessageStore訊息接受(十八)
這章我們從broker接受到訊息後的處理,從原始碼加註解的角度解析整體處理及技術,整體的處理步驟如下: sendMessage
數據庫中的參照完整性(Foreign Key)
part 回滾 arc bsp 元祖 varchar 指定 系統 屬性 之前在項目中遇到了這樣一個問題,我舉得簡單的樣例來說明。 比方我們有兩個表,一個表(department)存放的是部門的信息,比如部門id,部門名稱等;還有一個表是員工表(staff),員工表裏面肯
多表查詢(章節摘要)
右外連接 多表查詢 div ora 產生 多個 oracl 數據 數據庫 1,多表查詢指的是一個查詢操作同一時候從多張表取數據的操作。 2,在多表查詢時,因為數據庫的檢索機制會產生笛卡兒積。笛卡兒積是多張數據表的乘積。 3。數據表的連接方式有兩種,即內連接,外連
SQL多表聯合查詢(LEFT JOIN)條件差異
logs 技術分享 .cn where 聯合查詢 uid exist 包含 into 查詢A: select a.*,b.* into Bus605115_ON_Where_And --(642 行受影響) from PositionN a left join szt
連續查詢(Continuous Queries)
lis spa query one 刪除 就會 html ins max-width 當數據超過保存策略裏指定的時間之後,就會被刪除。如果我們不想完全刪除掉,比如做一個數據統計采樣:把原先每秒的數據,存為每小時的數據,讓數據占用的空間大大減少(以降低精度為代價)。這就需要I
數據庫 之 數據查詢(DQL語句)
dqlDQL:Data Query Language,數據查詢語言SELECT.SELECT col1,col2,... FROMtbl_name[WHERE clause][ORDER BY ‘col_name‘[DESC]] [LIMIT [m,]n];Limit m,n跳過m個,要n個如以下語句跳過2
數據庫復習總結(15)-子查詢(分頁)
des play core splay 出現 opened b2c lose ont 子查詢: (1)將一個查詢語句嵌入另一個查詢語句中,稱這種查詢為子查詢(2)出現在條件部分常用的運算符:= 、in 、exists(exists和in效果相同,但是exists效率高些)
MongoDB常用查詢(對比SQL)
常用 sans sql mon spa collect tcollect OS strong SQL MongoDB Description select * from bills db.getCollection(‘bills‘).find({}) 查找表bil
關於nspm品類產品在行業用戶網絡架構中的研究分析(建議安全自動化運維工具開發者,了解)
nspm產品如何提升安全運維為配合NSPM產品在不同行業不同類型的網絡架構中最大限度的發揮產品優勢,探索不同網絡架構中對產品的適配性。分多個行業目前的傳統網絡架構與未來演進的架構進行深入調研。 從目前數據中心所使用協議的數據層上看,IT方案都是以二/三層網絡(例如以太網+IP網絡)為基礎的,例如GRE、VXL
Django CRM查詢(一對多,多對多以及相關的反查)
mce field 需要 fff etime fcc nbsp pre 使用 Customer模型: class Customer(models.Model): name = models.CharField(max_length=32) qq =
JVM理論:(三/3)運行時棧幀結構、基於棧的字節碼解釋執行過程
指向 stat 中一 指令執行過程 字節碼指令 輸出 作用 引擎 jvm 一、棧幀結構 講棧幀結構有必要回顧一下前文Class文件中的Code屬性結構,如下圖。 棧幀是用於支持虛擬機進行方法調用和方法執行的數據結構,它是虛擬機棧的棧元素。每一個方法從調用開始到
BZOJ 3110 [Zjoi2013]K大數查詢(整體二分)
題解 gre void 有關 pre \n str k大數查詢 如果 3110: [Zjoi2013]K大數查詢 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 11654 Solved: 3505[Submit][Sta
(轉)運維角度淺談MySQL數據庫優化
臨時 keyword 由於 數據查詢 apr database inno 兩臺 麻煩 轉自:http://lizhenliang.blog.51cto.com/7876557/1657465 一個成熟的數據庫架構並不是一開始設計就具備高可用、高伸縮等特性的,它是隨著用