Jenkins构建镜像时出现获取id为1的Avro schema序列化异常,本地构建正常
你遇到的
Unexpected character ('<' (code 60))错误本质是Avro反序列化时请求Schema Registry服务端,收到的响应不是预期的JSON格式,而是HTML页面(开头的<就是HTML标签的起始符),错误码50005是Confluent Schema Registry定义的服务端异常码。
排查思路
- 核对构建环节配置差异:对比Jenkins构建产物和本地构建产物中的Schema Registry地址配置,确认Jenkins流水线是否有环境变量替换、配置文件预处理逻辑错误,导致地址被误改为其他Web服务地址(比如内网认证网关、拼写错误的K8s服务名)。
- 核对依赖包差异:确认Jenkins构建节点的依赖仓库配置、Gradle全局配置与本地一致,避免拉取到版本不符的
kafka-schema-registry-client相关依赖,可对比两个镜像中Jar包的版本和哈希值确认是否一致。同时检查Jenkins构建是否启用了特殊profile,触发了依赖裁剪、代码混淆逻辑,导致Avro序列化相关类被误处理。 - 核对运行时访问权限:进入K8s中部署的异常Pod,执行
curl {配置的Schema Registry地址}/subjects查看返回结果,确认是否被网关拦截返回认证页面、404页面,或者服务本身不可用返回错误页。同时确认Jenkins构建的镜像是否被默认注入了HTTP代理、错误的证书配置,导致请求被代理拦截返回异常内容。 - 交叉验证定位问题:将本地构建的镜像上传到镜像仓库,替换Jenkins构建的镜像在相同K8s环境部署,如果运行正常则可以确定问题出在Jenkins构建环节,反之则需要排查Jenkins的部署配置环节差异。
内容的提问来源于stack exchange,提问作者LearningBuddy
相关产品推荐
相关产品推荐

