答案 0 :(得分:2)
该键是可选的,默认情况下,确定主题中消息到达的分区。
不可能从主题中选择键-您必须计算它的分区,然后扫描主题分区的所有消息。可以在Kafka Streams API中创建一个Ktable来创建一种类型的KV存储,尽管您可以通过“交互式查询”从中选择)
Java API具有生产者发送方法,该方法允许您传递标头。您需要将键和值设置为null才能仅发送标头。我对标题的其他客户端支持还不够熟悉
标头可用于发送额外的元数据,例如客户端版本号或在zipkin等服务中使用的跟踪。此数据位于您要作为键/值有效负载的一部分发送的业务上下文之外。而且我不知道能够在控制台上发送标头
答案 1 :(得分:0)
kafka中关键值需要什么
一个键确定生成消息的分区。
每条消息都必须具有一个可以直接指定的键(在使用Kafka Producer API创建ProducerRecord
时),或者通过Partitioner间接指定的键,该键“为给定记录计算分区。”
Kafka Producer API使我们DefaultPartitioner
使用32位murmur2散列来计算记录的分区(已定义键)或以循环方式选择一个分区(根据可用的分区)主题)。
因为我们还可以像JMS这样直接以单个字符串形式发送消息。
使用自定义Partitioner
可以实现。默认情况下不是这样。