2017-08-24 46 views
4

所以我有一個kafka場景,其中有兩個主題:A和B.主題A的消費者在線(並且需要快速消費數據),主題B的消費者處於離線狀態。由於主題B的消費者處於脫機狀態,因此我不需要緩存與主題B相關的任何消息,並且希望主題A獲得整個緩存。是否可以禁用某些kafka主題的緩存?是否可以禁用某些kafka主題的緩存?

編輯: 我的意思是緩存是消息被存儲在內存中,消費者也從內存(而不是磁盤)讀取。在這種情況下,我想將與主題A相關的消息緩存在內存中。與主題B相關的消息不必緩存在內存中。我想主題進行使用,將被賦予主題的B內存空間

+0

緩存是什麼意思?在哪裏以及如何? – PragmaticProgrammer

+0

@PragmaticProgrammer我的意思是緩存是消息被存儲在內存中,消費者也從內存中讀取數據(而不是磁盤)。在這種情況下,我想將與主題A相關的消息緩存在內存中。與主題B相關的消息不必緩存在內存中。我希望主題A使用本主題B的內存空間。 – brokendreams

回答

1

卡夫卡在很大程度上依賴文件系統來存儲和緩存消息。卡夫卡用於緩存的唯一配置是客戶端的數據流緩衝區大小,用於緩存傳入的消息 - cache.max.bytes.buffering

5

您可以禁用特定消費者緩存:

如果您想禁用卡夫卡消費者的緩存,可以設置spark.streaming.kafka.consumer.cache.enabledfalse

它基於this github repository,我建議你按照它進一步澄清。

+0

我可以禁用代理的緩存嗎? – brokendreams

+0

代理的No.Cache配置不可用。 – Billa

相關問題