kafka-avro-console-producer指定已注册schema.id报错500问题咨询
报错原因
- 即使显式指定了
value.schema.id,kafka-avro-console-producer默认仍会开启自动注册Schema逻辑,该逻辑由参数auto.register.schemas控制,默认值为true。工具会先尝试将当前生产消息对应的Schema提交到Schema Registry完成注册流程,而非直接复用你指定的已存在ID。 - 你当前的Schema Registry处于
READ_ONLY模式,该模式下会拦截所有Schema注册、修改类的写请求,直接返回服务端500错误,和你拿到的报错栈完全匹配,READ_ONLY模式是触发本次报错的直接原因之一。
修复方案
在原有启动命令中新增禁用自动注册Schema的参数即可正常运行:
kafka-avro-console-producer \ --broker-list <broker-list> \ --topic <topic> \ --property schema.registry.url=http://localhost:8081 \ --property value.schema.id=419 \ --property auto.register.schemas=false \ --property use.latest.version=false
补充说明:
use.latest.version参数需要同步设为false,否则工具会优先拉取主题对应最新版本的Schema,覆盖你指定的value.schema.id配置。
内容的提问来源于stack exchange,提问作者Fares
相关产品推荐
相关产品推荐

