Kafka 的消息键有什么特别之处吗?

Joe*_*Joe 5 apache-kafka

我没有提到消息键 ( org.apache.kafka.clients.producer.ProducerRecord.key),只是它们可用于主题分区。

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

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

Sud*_*jan 4

我没有看到任何提及消息键(org.apache.kafka.clients. Producer.ProducerRecord.key),除了它们可以用于主题分区。

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

可能还有更多我还没学到的东西..:-)

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

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

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

密钥的大小很重要,因为它会改变您的整体有效负载大小。因此,缓冲区上的每个消息的利用率都会改变。我想不出还有什么其他影响。