You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用kafka-console-producer发送键值对避免被额外JSON编码

解决kafka-console-producer发送JSON键值被二次编码的方案

问题排查第一步:确认是否为消费输出的观测误差

你看到的转义符和外层双引号大概率是消费端输出格式导致的,而非消息本身真的被编码:
如果之前消费时指定了JSON格式输出,控制台会自动将字符串类型的键、值序列化为JSON字段,自动添加外层双引号、转义内容中的双引号。
你可以用以下基础消费命令验证真实消息内容:

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic --from-beginning --property print.key=true --property key.separator="||"

如果输出的键值没有多余转义和外层引号,说明消息本身符合预期,不需要修改生产者配置,后续消费时按需调整输出格式即可。

问题排查第二步:调整生产者配置避免真·二次编码

如果用上述命令验证后确认消息本身确实存在转义,修改生产者发送命令,显式指定字符串序列化器即可:

./kafka-console-producer.sh --broker-list localhost:9092 --topic topic \
--property "parse.key=true" \
--property "key.separator=;" \
--key-serializer org.apache.kafka.common.serialization.StringSerializer \
--value-serializer org.apache.kafka.common.serialization.StringSerializer \
< /message.json

额外注意点

  • 请确保message.json文件中分隔键值的;前后没有多余空白字符,避免解析时将空格带入JSON内容导致格式非法
  • Kafka broker端不会修改任何消息内容,无需调整服务端配置

内容的提问来源于stack exchange,提问作者bankoff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 01:57:04