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

Kafka REST v3支持的schema格式是什么?schema使用报错相关咨询

Kafka REST v3相关问题解答

1. Kafka REST v3支持的Schema格式

Kafka REST v3 共支持3种Schema格式,均需配合Confluent Schema Registry使用:

  • Avro
  • Protobuf
  • JSON Schema

2. Schema Registry与Kafka REST的依赖关系说明

你的假设不成立。Schema Registry与Kafka Rest存在明确的版本兼容要求,二者同属Confluent Platform配套组件,Kafka Rest内部集成了Schema Registry的客户端实现,跨大版本使用时极易出现API协议不兼容、序列化/反序列化逻辑不一致的问题。你在6.2.1版本Kafka Rest上复现相同报错,大概率就是版本不匹配引发的schema获取逻辑异常。

3. 报错根因及修复方案

对应报错信息:

"Error when fetching schema version. subject = test-key, schema = [{\"type\":\"record\",\"name\":\"countInfo\",\"fields\":[{\"name\":\"count\",\"type\":\"long\"}]}]"

原请求报文:

{
  "key": {
    "subject_name_strategy": "TOPIC_NAME",
    "schema_id": 8,
    "data": 1000
  },
  "value": {
    "data": {
      "countInfo": {
        "count": 0
      }
    }
  }
}

根因说明

  1. key与value的schema混用:报错显示test-key主题对应的schema为countInfo的record结构,但原请求中key的data为数值1000,与schema结构完全不匹配,countInfo结构反而被放在了value字段中,属于参数传递错误。
  2. 参数缺失:Kafka REST v3 API要求使用schema序列化时,value字段也必须明确指定schema_id、schema或subject_name_strategy参数,原请求未配置value的schema相关参数,会触发Kafka REST自动尝试匹配或注册schema,进一步引发报错。

修复方案

  1. 先确认Schema Registry中test-key和test-value两个subject对应的schema内容和schema_id,确保key的data匹配test-key的schema结构,value的data匹配test-value的schema结构。
  2. 补全请求中value的schema相关参数,参考结构如下:
{
  "key": {
    "subject_name_strategy": "TOPIC_NAME",
    "schema_id": "替换为test-key对应的正确schema id",
    "data": "替换为匹配test-key schema的内容"
  },
  "value": {
    "subject_name_strategy": "TOPIC_NAME",
    "schema_id": "替换为countInfo对应的test-value的schema id",
    "data": {
      "countInfo": {
        "count": 0
      }
    }
  }
}
  1. 统一Kafka REST与Schema Registry的Confluent Platform大版本,避免跨版本兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:15:02