kafka标头和键值对

时间:2019-02-17 13:26:25

标签: apache-kafka kafka-consumer-api kafka-producer-api

我遇到了有关kafka标头的链接。如以下链接中所述

kafka header https://cwiki.apache.org/confluence/display/KAFKA/KIP-82+-+Add+Record+Headers

我可以在Producer-api中使用键/值对来发送标头和有效载荷信息吗?我看到了有关日志压缩的观点,是否可以关闭日志压缩,以便在我的情况下,如果每个键都是唯一的,日志将无法跟踪每条记录?

我确实用键值对创建了一个生产者,其中键具有标题信息,值是有效载荷。每个键都是唯一的。

消费者也收到正确的键值对。

我想知道将这种方法用于带有大容量日志压缩的标头信息是否会出现问题。是否可以关闭日志压缩并让保留清除旧数据?

2 个答案:

答案 0 :(得分:0)

标题不控制日志压缩。

是的,您可以producer.send() a ProducerRecord with Headers

启用或禁用日志压缩后,保留窗口中唯一键的所有记录都会保留,因此不确定我是否理解该问题

答案 1 :(得分:0)

除了cricket_007所说的以外,如果我理解这个问题,则日志压缩功能不是基于标题内使用的密钥,而是基于Kafka消息中的密钥。 每个Kafka消息都有一个KEY,一个有效负载和标头(当然是键/值对),然后还有更多其他内容(时间戳,...)。 日志压缩只对消息的KEY有效,而对标头映射中的键无效。