一次kafka堆積問題解決

2021-09-08 15:52:45 字數 702 閱讀 7858

我們從kafka獲取資料,如下圖,有兩步,第一步是從dmq獲取出來放到乙個佇列裡;第二步是我們消費執行緒從佇列裡獲取內容。

對第一步,業務作為dmq客戶端,啟動n個連線去連線dmq,連線數由配置項mq.consumer.connections指定,一般模組都沒配置(目前小組內框架設定的預設值是2)

對第二步,消費執行緒數是由配置項 consumer.thread.num 決定(出現問題時為10)

巡檢時發現現網積壓了2500萬訊息,每個訊息體大小為1k。在現網隨時jstack都可以看到消費執行緒是8-10個在處理訊息,說明執行緒已經跑滿了;

每個執行緒處理訊息時間為2-3ms,1秒可以處理300多個訊息,10個執行緒上限是3000tps,2個節點大約可以處理6-7000,(從業務日誌可以看到當時一秒可以處理3400)但是當時生產效率大約9000/s。於是修改現網配置中消費者執行緒數為50,重啟後問題修復。

重啟後觀察日誌,1秒可以處理5000,jstack檢視執行緒可以發現50個執行緒在處理的有10-30個,也說明之前的執行緒太少,積壓問題解決。

下一步,繼續優化從kafka獲取的執行緒數,讓分割槽數 = 節點數*客戶端連線數

一次 kafka 訊息堆積問題排查

收到某業務組的小夥伴發來的反饋,具體問題如下 專案中某 kafka 訊息組消費特別慢,有時候在 kafka manager 控制台看到有些消費者已被踢出消費組。從服務端日誌看到如下資訊 該消費組在短時間內重平衡了 600 多次。從 cat 檢視得知,每條訊息處理都會有 4 次資料庫的互動,經過一番溝...

團隊作業第一次(2) 問題解決

這個作業屬於哪個課程 軟體工程 福州大學至誠學院 計算機工程系 這個作業要求在 團隊作業第一次 團隊作業第一次 2 這個作業的目標 作業正文 見下其他參考文獻 無失業群體,想要自主創業卻找不到創業目標和團隊的人。3.增加了就職方向選擇功能,並推薦相關群聊,方便對該職業就業情況的了解。4.增加了分割槽...

Kafka開發問題解決思路

訊息丟失解決方案 首先對 kafka 進行限速,其次啟用重試機制,重試間隔時間設定長一些,最後 kafka 設定 acks all,即需要相應的所有處於 isr 的分割槽都確認收到該訊息後,才算傳送成功 訊息重複解決方案 訊息可以使用唯一 id 標識 生產者 ack all 代表至少成功傳送一次 消...