1

假設我無權訪問提交感興趣的分區的生產者集合,但只能控制一堆C++消費者。 由於我在一個複雜的程序上運行基準測試,我想知道我的消費者獲取的偏移量與存儲在分區中的總偏移量之間的差距。rdkafka消費者關於分區大小的查詢

例如,>> reading message #1234 of 5678 total in partition 0 of topic foo

我誤解的RdKafka::Consumer->outq_len()RdKafka::Topic->OFFSET_END的目的,因爲它們似乎總是等於分別0-1

我怎樣才能獲得我例子的5678值?

回答

2

您需要訂閱librdkafka的統計信息才能獲得消費者滯後的更新視圖。 註冊一個Event回調類和regularily呼籲poll()你的手柄,檢查EVENT_STATS,然後解析相應的JSON消息,並尋找lo_offsethi_offsetconsumer_lag

+0

不適用於我。我試圖使用統計數據來監測滯後使用.NET包裝rdkafka(RdKafka),但它返回一些奇怪的滯後值。例如,我配置回調每30秒觸發一次。一開始它會返回可信的值,但每次都減少,並且一直持續到零。同時,我知道任何東西都不會消耗,卡夫卡系統工具讓我看到真正的價值。 – greatvovan