You need to enable JavaScript to run this app. kafka-avro-console-producer报无法解析null schema异常
优惠活动
大模型
产品
解决方案
定价
更多

kafka-avro-console-producer报无法解析null schema异常

报错核心根因

报错和Avro schema语法、Schema Registry服务状态无关——你能通过Gradle插件正常生成对应Java类,就证明schema本身书写完全合规。触发报错的直接原因是shell命令解析时出现参数传递偏差:

  • 原命令中--property value.schema= '\的写法,在等号和后续单引号之间多了一个空格
  • Kafka控制台工具解析--property key=value格式参数时,会严格按照等号切割键值对,等号后紧跟空格会被判定为value.schema属性取值为空,后续单引号包裹的schema内容会被识别为独立的冗余参数,最终程序拿到的schema值为null,直接触发Avro空schema解析异常
修正后的可运行命令

移除等号与取值间的多余空格,调整后的完整命令如下:

[appuser@schema-registry bin]$ ./kafka-avro-console-producer \
--broker-list localhost:9092 \
--topic t.lower.case \
--property schema.registry.url='localhost:8081' \
--property value.schema='{
  "namespace": "com.thebigscale",
  "type": "record",
  "name": "Customer",
  "fields": [
    {"name": "first_name", "type":"string", "doc": "First name of the person"},
    {"name": "last_name", "type":"string", "doc": "Last name of the person"},
    {"name": "age", "type": "int", "doc": ""},
    {"name": "height", "type": "double", "doc": ""},
    {"name": "weight", "type": "double", "doc": ""},
    {"name": "automated_emails", "type": "boolean", "default":true, "doc": ""}
  ]
}'
同类场景排查注意事项
  • 所有--property格式的键值对,等号与取值之间不能留多余空格,无论取值是短字符串还是跨行的长schema,必须严格遵循--property <属性名>=<取值>的格式
  • 跨行拼接命令时,行尾的反斜杠前后不能留空格,否则会被shell识别为普通字符,导致换行拼接失效、参数被截断
  • 给属性值加引号包裹时,引号必须紧跟等号,不能中间留空格,避免出现和本次报错一致的空值传递问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.13 02:15:03