是否可以禁用某些kafka主题的缓存?

时间:2017-08-24 17:03:13

标签: apache-kafka

所以我在kafka有一个场景,其中有两个主题:A和B.主题A的消费者在线(并且需要快速消费数据)并且主题B的消费者处于离线状态。由于主题B的消费者处于离线状态,因此我现在不需要缓存与主题B相关的任何消息,并且需要主题A来获取整个缓存。是否可以禁用某些kafka主题的缓存?

编辑: 我的意思是缓存是消息存储在内存中,而消费者也在从内存中读取(而不是磁盘)。在这种情况下,我希望将与主题A相关的消息缓存在内存中。与主题B相关的消息不必缓存在内存中。我希望主题A使用内存空间,该空间将被赋予主题B

2 个答案:

答案 0 :(得分:6)

您可以为特定消费者禁用缓存:

  

如果您想禁用Kafka消费者的缓存,可以将spark.streaming.kafka.consumer.cache.enabled设置为false

来自[ Spark Streaming + Kafka集成指南],我建议您按照它进行进一步说明。

答案 1 :(得分:1)

Kafka在很大程度上依赖于文件系统来存储和缓存消息。 Kafka中唯一可用于缓存的配置是客户端的流缓冲区大小,用于缓冲传入的消息 - cache.max.bytes.buffering