kafka消費延遲問題查詢

2021-10-11 19:51:10 字數 832 閱讀 7727

最近線上偶爾爆出kafka消費延遲,但是系統的資料量並不大,為什麼會延遲呢?

具體分析如下。

基本思路

1.檢視機器中資料積壓情況,是否是因為資料量過大導致的消費延遲。

2.統計資料傳送kafka成功到資料消費出來(還未做業務處理)的耗時。

3.統計資料消費出來並完成業務處理的耗時。

可以看出該group中有乙個topic,該topic有6個partition,消費者分布在兩台機器上(兩個ip),每台機器有三個消費者。

重點關注每個partition的日誌積壓情況(檢視lag引數):

partition-3中有0條資料積壓

partition-1中有1條資料積壓

partition-2中有3條資料積壓

partition-0中有0條資料積壓

partition-4中有0條資料積壓

partition-5中有0條資料積壓

可以看出資料積壓不嚴重。不是資料量大導致的延遲

經過日誌統計分析,基本是毫秒級別的耗時。所以不是該問題導致的延遲。

經過日誌統計分析,基本是毫秒級別的耗時。但是偶爾出現20分鐘的處理耗時。所以,可以肯定延遲是由於處理消費的資料時部分操作導致了。

找到這部分日誌,發現是由於業務處理中,有時需要呼叫乙個外部的介面,結果這個介面的位址不通,在http呼叫時未設定超時,導致服務卡在這裡等待20分鐘後才超時,從而導致部分後續消費的延遲。

最終,將http請求超時設定為15s後就解決了這個問題。

kafka消費延遲或者重複消費原因

由於專案中需要使用kafka作為訊息佇列,並且專案是基於spring boot來進行構建的,所以專案採用了spring kafka作為原生kafka的乙個擴充套件庫進行使用。先說明一下版本 用過kafka的人都知道,對於使用kafka來說,producer的使用相對簡單一些,只需要把資料按照指定的格...

kafka重複消費問題

問題描述 採用kafka讀取訊息進行處理時,consumer會重複讀取afka佇列中的資料。問題原因 kafka的consumer消費資料時首先會從broker裡讀取一批訊息資料進行處理,處理完成後再提交offset。而我們專案中的consumer消費能力比較低,導致取出的一批資料在session....

解決Kafka重複消費問題

某服務 用了springboot spring kafka 處理kafka訊息時,發現每條訊息處理時間長達60 秒。幾百條訊息處理完後,又重新從第一條開始重複消費。kafka消費者有兩個配置引數 max.poll.interval.ms 兩次poll操作允許的最大時間間隔。單位毫秒。預設值30000...