1. 面試流程簡介
騰訊視頻面試的是實習,一般只有兩輪技術面,騰訊視頻面試感覺算法比較簡單,但是對實際項目經驗要求比較高.騰訊視頻面試除了介紹項目經驗之外,總共問了5道題.3道實際操作題目,2道算法題.其中比較有趣的一道的kafka過期消費問題.
2. 題目概述
請介紹一下kafka過期消費問題以及解決方法.
3. 解題思路及代碼
解決這個問題需要對kafka有基本的瞭解,kafka的基本原理可以見文章kafka工作原理.
在kafka中,真正存儲消息的模塊叫做pation,一個partion是一個追加文件,每條消息都對應文件中的一個offset.
一個broker會記錄消息隊列中最早的消息的offset,這個值用earlieastLeaderOffsets來表示,記爲A.一個consumer也會記錄當前消費消息的offset,用consumerOffsets表示,記爲B.正常情況下,消費者消息消息的偏移量應該大於broker中最早消息的偏移量,即A<B,如下圖所示.但是broker有清理過期消息的機制,如果consumer讀取速度比較慢,就會導致A>B,即消費者還未讀取的消息被broker清理了.這就會帶來過期消費的問題.
知道了它產生的原因以後,解決方法也就顯而易見了.解決方法是broker清理消息時候讀取消費者的offset,保證清理的消息offset小於消息者消費消息的offset.
4. 更多題目
騰訊視頻2019實習面試所有題目見鏈接騰訊視頻面試題