卡夫卡对数压缩消耗数据

eth*_*nny 6 java apache-kafka

我正在阅读最新版本的kafka中的日志压缩,并且很好奇这对消费者有何影响。消费者是否像以前一样工作,或者是否有新的过程来获取所有最新价值?

对于“标准” Kafka主题,我使用了一个消费者组来维护指向最新值的指针。但是,如果Kafka是根据键而不是时间来保持值,我想知道消费者群体将如何工作?

Mat*_*Sax 4

它不会影响消费者的工作方式。如果您只对每个键的最新值感兴趣并阅读整个主题,您可能仍然会看到某个键的“重复项”(如果没有消除所有重复项,或者在上次压缩运行后写入新消息),因此您只关心关于每个键的最新值。

关于消费者组:当主题被压缩时,有效偏移范围内会出现“漏洞”。当您定期阅读某个主题时,您会自动跳过这些主题。

来自https://kafka.apache.org/documentation.html#design_compactionbasics

另请注意,即使具有该偏移量的消息已被压缩,所有偏移量仍保留在日志中的有效位置;在这种情况下,该位置与日志中出现的下一个最高偏移量无法区分。例如,在上图中,偏移量 36、37 和 38 都是等效位置,从这些偏移量中的任何一个开始读取都将返回以 38 开头的消息集。