Kafka控制台生产者命令行Headers解析报错求助
解决Kafka控制台生产者Headers解析错误问题
问题原因
- 分隔符未正确解析:你在
echo命令里用单引号包裹内容,shell不会将\t解析为实际的制表符(Tab键),导致Kafka生产者无法识别Headers和消息体的分隔符。 - 参数名称错误:命令里的
--bootstrapserver:是错误写法,正确参数应为--bootstrap-server(无冒号,采用连字符分隔)。
修复后的命令
方法1:手动输入制表符
在终端输入时,把\t替换成直接按Tab键生成的制表符:
echo 'headerKey1=value1;headerKey2=value2 {"myJson":"payload"}' | ./bin/kafka-console-producer.sh --topic my-topic --bootstrap-server myserver --property "parse.headers=true"
方法2:用双引号让shell解析转义字符
将echo的内容改用双引号包裹,让shell自动把\t解析为制表符:
echo "headerKey1=value1;headerKey2=value2\t{"myJson":"payload"}" | ./bin/kafka-console-producer.sh --topic my-topic --bootstrap-server myserver --property "parse.headers=true"
方法3:用printf生成标准格式内容
更可靠的方式是通过printf输出带正确制表符的内容:
printf 'headerKey1=value1;headerKey2=value2\t{"myJson":"payload"}\n' | ./bin/kafka-console-producer.sh --topic my-topic --bootstrap-server myserver --property "parse.headers=true"
验证Headers是否生效
可以用控制台消费者查看消息的Headers信息,确认是否发送成功:
./bin/kafka-console-consumer.sh --topic my-topic --bootstrap-server myserver --property print.headers=true --from-beginning
内容的提问来源于stack exchange,提问作者TSSK
相关产品推荐
相关产品推荐

