卡夫卡的留言键有什么特别之处吗?

时间:2017-06-22 11:02:41

标签: apache-kafka

我没有看到消息密钥(org.apache.kafka.clients.producer.ProducerRecord.key),除了它们可能用于主题分区。

我可以自由地将任何我喜欢的数据放入密钥中,还是有一些我应该遵循的特殊语义?

密钥似乎是放置少量元数据的方便标头。这是个坏主意吗?

1 个答案:

答案 0 :(得分:1)

  

我没有提到消息密钥(org.apache.kafka.clients.producer.ProducerRecord.key),除了它们可能用于主题分区。

在Kafka中使用密钥: 1.分区 2.保证在分区内排序 3.在日志压缩期间用于创建偏移图

可能是我尚未学到的更多......: - )

  

我可以自由地将任何我喜欢的数据放入密钥中,还是有一些我应该遵循的特殊语义?

Key可以是任何类型Null,string或具有有效序列化机制的任何其他形式。

  

你知道密钥的大小是否重要(例如64字节对200字节)

密钥的大小很重要,因为它会改变您的整体有效负载大小。因此缓冲区上的每个消息利用率都将改变。我无法想到任何其他影响。