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

如何通过Kafka CLI生产带Headers的JSON消息?

Kafka Console Producer 发送带消息头的正确方式

你的原命令无法正确解析消息头,原因是:

  • parse.key=true 和 key.separator=\n 是用于解析消息键的配置,和消息头无关;
  • 缺少启用消息头解析的核心配置 parse.headers=true,导致程序不会识别你文件里的headers内容。

下面是两种可行的实现方式:

方案一:通过文件发送

1. 调整message.txt格式

将消息头和消息体放在同一行,用分隔符(比如|)区分,多个消息头用逗号分隔:

HeaderKey1:HeaderValue1,HeaderKey2:HeaderValue2|{"status": "success", "properties": []}

2. 执行发送命令

cat message.txt | \
  docker exec -i kafka kafka-console-producer.sh \
  --bootstrap-server localhost:9092 \
  --topic test_topic \
  --property parse.headers=true \
  --property headers.separator=| \
  --property headers.delimiter=:
  • parse.headers=true:启用消息头解析功能;
  • headers.separator=|:指定消息头与消息体的分隔符;
  • headers.delimiter=::指定单个消息头的键值对分隔符。

方案二:直接命令行输入发送

无需文件,直接在命令行输入消息内容(格式为[消息头列表]消息体):

  1. 启动producer:
docker exec -i kafka kafka-console-producer.sh \
  --bootstrap-server localhost:9092 \
  --topic test_topic \
  --property parse.headers=true
  1. 在交互界面输入以下内容并回车发送:
[HeaderKey1:HeaderValue1,HeaderKey2:HeaderValue2]{"status": "success", "properties": []}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 17:53:32