如何解決訊息佇列的延時以及過期失效問題?

2021-09-25 17:24:06 字數 708 閱讀 5191

如果你積壓了幾百萬到上千萬的資料,即使消費者恢復了,也需要大概1小時的時間才能恢復過來

一般這個時候,只能操作臨時緊急擴容了,具體操作步驟和思路如下:

1)先修復consumer的問題,確保其恢復消費速度,然後將現有cnosumer都停掉

2)新建乙個topic,partition是原來的10倍,臨時建立好原先10倍或者20倍的queue數量

3)然後寫乙個臨時的分發資料的consumer程式,這個程式部署上去消費積壓的資料,消費之後不做耗時的處理,直接均勻輪詢寫入臨時建立好的10倍數量的queue

4)接著臨時徵用10倍的機器來部署consumer,每一批consumer消費乙個臨時queue的資料

5)這種做法相當於是臨時將queue資源和consumer資源擴大10倍,以正常的10倍速度來消費資料

6)等快速消費完積壓資料之後,得恢復原先部署架構,重新用原先的consumer機器來消費訊息

總結:就是將原有消費者轉為生產者,將訊息放入新的佇列(更多,更快),在進行消費

一般不會設定訊息過期

涼拌

快速消費掉所有的訊息。然後走第乙個方案,到了晚上再補資料吧。

訊息佇列的延時以及過期失效問題

面試題 情況 可能消費端出了問題,不消費了,或者消費地極其緩慢。可能你的訊息佇列集群的磁碟都快寫滿了,都沒人消費,這個時候怎麼辦?積壓的時間太長了,導致 rabbitmq 設定了訊息過期時間後訊息就沒了怎麼辦?臨時緊急擴容 具體操作步驟和思路如下 先修復 consumer 的問題,確保其恢復消費速度...

訊息佇列如何解決訊息積壓問題

訊息佇列訊息積壓了怎麼辦?q 剛開始是對這個疑問抱有質疑態度的,因為使用訊息佇列的其中目的就是削峰填谷,來避免高流量時,對下游服務的衝擊,所以使用訊息佇列進行緩衝,下游根據自己的消費能力去消費,我感覺這就是訊息積壓本就是使用訊息佇列的功能,怎麼會是問題呢?a 首先訊息積壓是正常現象,但凡是過多就不正...

如何解決PL SQL Developer過期的情況

原文出自度娘 在此我僅作為記錄,以便自己檢視 這種方法只能用30天,所以緊急事情解決後,還是趕緊找註冊碼吧,一勞永逸 當然也可以30天到期後,再這樣解決,再用30天,迴圈下去。如果你的電腦可以永久不關,可以保持plsql登入的介面不關閉,這樣就可避免這些重複的操作了 以下內容更新於2019年10月2...