MQ 重試佇列注意事項

2021-09-25 12:24:35 字數 379 閱讀 8880

不要過度依賴訊息佇列的重試來保證最終消費成功

舉個例子,我們的消費訊息佇列的應用a依賴於應用b的某個介面,但是雙十一流量太大,應用b的介面qps不足,導致rpc超時返回(即本條訊息消費失敗),此條訊息會進入重試佇列。

進入重試佇列不是萬能的

問題一:rocketmq重試16次還是不成功就會認為訊息消費不了,丟進死信佇列

問題二:rocketmq重試佇列數量少,可能100個正常的queue才1個重試queue,那麼問題來了,要是本來100臺機器應用a,每台消費乙個正常queue,但是進入重試queue,只有1臺機器能消費,1臺重試queue的堆積能力和消費能力是不可能接受的

所以正確的架構解決方案是對應用b進行限流,讓訊息堆積在正常queue而不是堆積進重試queue

迴圈佇列 使用原因與注意事項

問題描述 迴圈佇列是一般佇列的變種吧,就是將佇列首尾相連了,貌似這樣就不必考慮佇列滿而無法使用了,因為到了佇列尾又會迴圈回到佇列首。在嵌入式底層 實現中,一些串列埠資料特別是串列埠,用到迴圈佇列的情況還是蠻多的。當然,這只是一種資料結構,用在 都得看具體用途和是否能帶來好處。為了更深一步的對這一結構...

java DOM 注意事項

1.w3c把標籤內的文字部分也定義成乙個node 2.element物件代表的是xml文件中的標籤元素 繼承於node,亦是node的最主要的子物件 3.attr實際上是包含在element中的,它並不能被看作是element的子物件,因而在dom中attr並不是dom樹的一部分,所以node中的 ...

static注意事項

static關鍵字是c,c 中都存在的關鍵字,它主要有三種使用方式,其中前兩種只指在c語言中使用,第三種在c 中使用 c,c 中具體細微操作不盡相同,本文以c 為準 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 下面就這三種使用方式及注意事項分別說明 一 區域性靜態變數 在...