1. 程式人生 > >rocketMQ 訊息查詢(id,key) 運維命令以及java API的用法

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是一個純

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= ZTEExamplekey= 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 一個成熟的數據庫架構並不是一開始設計就具備高可用、高伸縮等特性的,它是隨著用