我没有看到消息密钥(org.apache.kafka.clients.producer.ProducerRecord.key
),除了它们可能用于主题分区。
我可以自由地将任何我喜欢的数据放入密钥中,还是有一些我应该遵循的特殊语义?
密钥似乎是放置少量元数据的方便标头。这是个坏主意吗?
答案 0 :(得分:1)
我没有提到消息密钥(org.apache.kafka.clients.producer.ProducerRecord.key),除了它们可能用于主题分区。
在Kafka中使用密钥: 1.分区 2.保证在分区内排序 3.在日志压缩期间用于创建偏移图
可能是我尚未学到的更多......: - )
我可以自由地将任何我喜欢的数据放入密钥中,还是有一些我应该遵循的特殊语义?
Key可以是任何类型Null,string或具有有效序列化机制的任何其他形式。
你知道密钥的大小是否重要(例如64字节对200字节)
密钥的大小很重要,因为它会改变您的整体有效负载大小。因此缓冲区上的每个消息利用率都将改变。我无法想到任何其他影响。