RabbitMq消息軌跡查詢設(shè)計(jì)

消息軌跡查詢的必要性

消息系統(tǒng)作為互聯(lián)網(wǎng)行業(yè)削峰填谷的利器,是后端應(yīng)用系統(tǒng)來進(jìn)行異步解耦的重要工具;
而消息系統(tǒng)產(chǎn)生的消息也是應(yīng)用系統(tǒng)數(shù)據(jù)流正確扭轉(zhuǎn)的重要支撐。
為了保證消息軌跡(從那個(gè)地方產(chǎn)生,流向了那個(gè)地方)可查詢,并且提供追本溯源的功能,是保證消息系統(tǒng)高可靠的一部分

消息軌跡查詢的目標(biāo)

規(guī)范化Rabbit的Exchange、RouteKey、Queue的使用
消息軌跡的查詢及消息丟失后可進(jìn)行消息回朔
對內(nèi)部的消息進(jìn)行分析及統(tǒng)計(jì),能夠預(yù)估Rabbit的容量規(guī)劃及其他分析作用
增加消息剔重的操作,防止在網(wǎng)絡(luò)抖動(dòng)情況下,消息重復(fù)投遞

架構(gòu)方案
image.png
開發(fā)工作
  • sdk的開發(fā)(針對spring-rabbit)
    1)消息生成MessageId;Id格式暫定為: ProducerIP+日期時(shí)間戳
    1. 消息異步序列化到DB中,需要批量及異步,不能對業(yè)務(wù)放使用產(chǎn)生延遲
      3)將exchange、queue、兩者申請api去除掉,需要去console中去申請
      4)消息剔重,防止在網(wǎng)絡(luò)抖動(dòng)情況下,消息會進(jìn)行重復(fù)投遞
  • Webconsole的開發(fā)
    1) Exchange的CURD操作
    2) Queue的CURD操作
    3) 消息軌跡的查詢,提供查詢方式有 Exchange、RouteKey、機(jī)器IP、消息發(fā)送時(shí)間、消息ID五種查詢方式
    4) 消息補(bǔ)償,提供在Console頁面上重新入隊(duì)的功能(此功能將不能保證消息的順序)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容