1 回答

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊
通過閱讀golang saram客戶端和kafka服務(wù)器的源碼,最終找到原因如下
消費(fèi)者組偏移保留時(shí)間為24 小時(shí),這是 kafka 默認(rèn)設(shè)置,而日志保留時(shí)間是我們明確設(shè)置的 7 天。
我的服務(wù)器應(yīng)用程序運(yùn)行在測(cè)試環(huán)境中,很少有人可以訪問,這意味著kafka生產(chǎn)者產(chǎn)生的消息可能很少,然后消費(fèi)者組也沒有多少消息可以消費(fèi),因此消費(fèi)者可能很長時(shí)間不會(huì)提交任何偏移量。
當(dāng)消費(fèi)偏移量超過24小時(shí)未更新時(shí),由于偏移量配置,kafka代理/協(xié)調(diào)器將從分區(qū)中刪除消費(fèi)偏移量。下次 saram 從 kafka 代理查詢偏移量在哪里時(shí),客戶端當(dāng)然什么也得不到。請(qǐng)注意,我們使用sarama.OffsetOldest作為初始值,然后 sarama 客戶端將從 kafka Broker 保留的消息開頭開始消費(fèi)消息,這會(huì)導(dǎo)致消息重新消費(fèi),并且這種情況很可能發(fā)生,因?yàn)槿罩颈A羝跒?7天
- 1 回答
- 0 關(guān)注
- 152 瀏覽
添加回答
舉報(bào)