Apache kafka 如何使用密钥发送1条卡夫卡消息?

Apache kafka 如何使用密钥发送1条卡夫卡消息?,apache-kafka,kafka-consumer-api,kafka-producer-api,Apache Kafka,Kafka Consumer Api,Kafka Producer Api,我正在使用以下命令:bin/kafka-console-producer.sh--引导服务器url--主题通知--属性“parse.key=true”--属性“key.separator=:” 我输入此命令,然后输入: 1:{“制作人”:4,“消息”:{“创建日期”:“2020-08-04 15:03:19.063196”} 然后,它马上就需要第二行了。但我只想发送一条消息,所以我再次点击回车键,然后得到一条消息 org.apache.kafka.common.KafkaException:在k

我正在使用以下命令:
bin/kafka-console-producer.sh--引导服务器url--主题通知--属性“parse.key=true”--属性“key.separator=:”

我输入此命令,然后输入:

1:{“制作人”:4,“消息”:{“创建日期”:“2020-08-04 15:03:19.063196”}

然后,它马上就需要第二行了。但我只想发送一条消息,所以我再次点击回车键,然后得到一条消息


org.apache.kafka.common.KafkaException:在kafka.tools.ConsoleProducer$LineMessageReader.readMessage(ConsoleProducer.scala:289)的kafka.tools.ConsoleProducer$.main(ConsoleProducer.scala:51)的kafka.tools.ConsoleProducer.main(ConsoleProducer.scala)的第2:q行找不到密钥。

我认为消息实际上已经发送了<代码>卡夫卡控制台制作人逐行接受输入。每行(当您通过点击[enter]输入换行符时)都会向主题提交一条消息。之后,
kafka console producer
继续等待下一个输入,如果您发送更多消息。但是,因为对于下一个输入,您试图发送一个空字符串,所以它实际上不会解析,并且会产生错误。不过,此错误仅适用于第二个条目。通常情况下,第一条信息应该已经在那时发送了


正如@Patrick Kelly在评论中所建议的那样,您可以通过运行一个消费者来确认这一假设,并查看其中的内容。例如,在
kafka console producer
提示符中输入消息时,运行
kafka console consumer

我将在另一个终端实例中同时运行cli consumer,以查看消息是否进入队列。如果消息发送成功,生产者将显示新行输入。在发送第一条消息后,按Ctrl+C退出console生产者。