Amr*_*916 5 apache-kafka kafka-producer-api apache-zookeeper
我创建了一个包含许多分区的主题。使用控制台生产者,我想将消息发送到特定分区并通过控制台使用者查看。在调音台制作人上,我已经尝试过了
kafka-console-producer.bat --broker-list localhost:9092 --topic sample --property parse.key=true --property key.separator=,
Run Code Online (Sandbox Code Playgroud)
发送消息为,
key1,another-message
Run Code Online (Sandbox Code Playgroud)
但是我只是对key1是否代表分区号感到困惑。
使用控制台使用者,我查看了消息,
kafka-console-consumer.bat --zookeeper localhost:2181 --topic sample
Run Code Online (Sandbox Code Playgroud)
我想根据分区查看消息。这是在控制台使用者上查看消息的正确方法吗?有人可以对此提供清晰的理解吗?
密钥不是分区号,而是Kafka使用该密钥指定目标分区。默认策略是根据键的哈希值选择分区,如果键为null,则使用循环算法。
如果需要自定义算法将消息映射到分区,则需要实现org.apache.kafka.clients.producer.Partitioner接口。您的班级名称必须设置为partitioner.class生产者的属性。
更新:您也可以直接在ProducerRecord中指定分区号
| 归档时间: |
|
| 查看次数: |
6903 次 |
| 最近记录: |