如何使用键发送1个Kafka消息?

3

我正在使用以下命令:bin/kafka-console-producer.sh --bootstrap-server url --topic Notifications --property "parse.key=true" --property "key.separator=:"

我输入这个命令并回车:

1: {"producer": 4, "message": {"created_date": "2020-08-04 15:03:19.063196"}}

然后它会立即期望第二行。但是我只想发送一条消息,所以我再次按下回车键,结果出现错误:

org.apache.kafka.common.KafkaException: No key found on line 2: q at kafka.tools.ConsoleProducer$LineMessageReader.readMessage(ConsoleProducer.scala:289) at kafka.tools.ConsoleProducer$.main(ConsoleProducer.scala:51) at kafka.tools.ConsoleProducer.main(ConsoleProducer.scala)


我会在另一个终端实例中同时运行cli消费者,以查看消息是否到达队列。如果消息成功发送,生产者将显示新的行输入。 - Patrick Kelly
1
发送第一条消息后,请按Ctrl+C退出控制台生产者。 - Rishabh Sharma
1个回答

3
我认为该消息确实已发送。 kafka-console-producer逐行接受输入。每一行(当您通过按 [Enter] 输入换行符时)都会将消息提交到主题。之后,kafka-console-producer 继续等待下一个输入,如果您要发送更多的消息。但是,因为对于下一个输入尝试发送一个空字符串,它确实不会解析,从而产生错误。然而,这个错误只针对第二个条目。第一条消息在那时应该已经被发送了。
如@Patrick Kelly在评论中建议的那样,您可以在相关主题上运行消费者并查看其中内容。例如,在 kafka-console-producer 提示中输入消息时,运行 kafka-console-consumer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接