camel解決mq佇列積壓問題

2021-09-25 12:47:12 字數 681 閱讀 9361

前段時間,在使用spring camel開發esb時候碰到乙個業務場景,個別activemq的監聽佇列每秒中訊息成兩位數、三位數的往裡接收,加上esb監聽端有一定的業務邏輯處理,造成佇列積壓嚴重,遂提出查詢對應解決方案,索性技術難度不大,監聽端採用blockingqueue做快取解決訊息積壓問題。

1、在監聽入口位置,建立乙個佇列接收bean

private messagetask task = new messagetask();

@override

public void process(exchange exchange) throws exception catch (exception e)

}

2、messagetask

@component

public class messagetask

/*** 新增資訊至佇列中

** @param content

*/public void addqueue(string content)

/*** 初始化執行

*/public void execute()

} catch (exception e)

}}, 3, 3, timeunit.seconds);

}}

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

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

訊息佇列筆記二 訊息積壓,過期失效,設計MQ

水平擴容增加 consumer 的例項數量 先修復 consumer 的問題,確保其恢復消費速度,然後將現有 consumer 都停掉 新建乙個 topic,partition 是原來的 10 倍,臨時建立好原先 10 倍的 queue 數量 然後寫乙個臨時分發資料的 consumer 程式,這個程...

關於MQ的幾件小事(六)訊息積壓在訊息佇列裡怎麼辦

場景 幾千萬條資料在mq裡積壓了七八個小時,從下午4點多,積壓到了晚上很晚,10點多,11點多。線上故障了,這個時候要不然就是修復consumer的問題,讓他恢復消費速度,然後傻傻的等待幾個小時消費完畢。這個肯定不行。乙個消費者一秒是1000條,一秒3個消費者是3000條,一分鐘是18萬條,1000...