如何向kafka中的特定分区发送消息?

e0bqpujr  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(633)

我创建了一个有许多分区的主题。使用控制台生产者,我想发送消息到特定的分区,并通过控制台消费者查看。在游戏机上我试过这个,

kafka-console-producer.bat --broker-list localhost:9092 --topic sample  --property parse.key=true --property key.separator=,

发送消息为,

key1,another-message

但我只是搞不清楚key1是否代表分区号。
我使用控制台消费者查看了这些消息,

kafka-console-consumer.bat --zookeeper localhost:2181 --topic sample

我想根据分区查看消息。这是在控制台使用者上查看消息的正确方法吗?有谁能对此有一个清晰的认识吗?

ykejflvf

ykejflvf1#

密钥不是分区号,但kafka使用密钥指定目标分区。默认策略是根据密钥的哈希值选择分区,如果密钥为空,则使用循环算法。
如果需要自定义算法将消息Map到需要实现的分区 org.apache.kafka.clients.producer.Partitioner 接口。必须将类的名称设置为 partitioner.class 生产者的财产。
更新:您也可以直接在producerrecord中指定分区号

相关问题