- 出問題現(xiàn)象
最近項目使用到了kafka,別的系統(tǒng)作為生產(chǎn)者,我們系統(tǒng)作為消費者,但是經(jīng)常出現(xiàn)消費者消費一段時間就不消費了,根本就觸發(fā)不了kafkaListener的拉取動作。換一個消費者組,從最新的位置消費又可以消費的到,但是消費一段時間就又消費不到。查看服務端沒任何報錯,客戶端也沒有任何報錯。 - 排查思路
原因一:消費速度太慢,導致數(shù)據(jù)積壓太多,所以無法消費(現(xiàn)在想想根本不可能)???
由原來的1條1條拉取,改成批量消費,還是不行。改成多線程消費還是不行。
原因二:沒有給多個消費線程添加id(這個是在容器中,便于區(qū)分)
@kafkaListenner(topic="test",groupId="test11",containerFactory="kafkaLinstenerContainerFactory",id="testThead")
加了沒用
原因三:心跳、會話超時時間有問題???
查閱官網(wǎng)資料,將參數(shù)調(diào)整為:文章來源:http://www.zghlxwxcb.cn/news/detail-503935.html
enable.auto.commit=true
auto.commiit.interval=100
session.timeout.ms=18000
request.timeout.ms=18000
##官方建議會話超時時間是心跳間隔的3倍
heartbeat.interval=6000
改了參數(shù)還是不行。。。
最終原因:至此不懷疑自己寫的代碼有問題了,開始在服務端找問題,各種百度嘗試也無果。求助優(yōu)秀的同時,排查了幾天終于找到問題,簡單來說就是限流了。這個博客kafka流量限制解釋的很詳細。
我們公司是利用界面化創(chuàng)建的kafka,創(chuàng)建的時候我們選著的是默認值,默認consumer.byte.rate=1024Byte。修改之后服務都正常了。
在此做一個記錄,以后默認的東西還是要自己了解過再用,這個阻礙了我兩個星期。。。。。。文章來源地址http://www.zghlxwxcb.cn/news/detail-503935.html
到了這里,關于kafka消費不到數(shù)據(jù)問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!