概述
生产方与消费方独立部署时,schema 变更如果没有兼容规则,会在某一侧上线后立刻破坏另一侧。先在注册中心声明兼容模式,让不兼容变更在发布时即被拒绝;新字段以带默认值的可选字段先行,删除则等全部消费方迁移完成。
关键步骤
- 定义兼容策略(向后、向前或完全)。
- 注册每个版本并由注册中心检查兼容性。
- 先以带默认值的可选字段引入新字段。
- 仅在全部消费方迁移后删除字段。
验证
- 注册中心拒绝不兼容变更。
- 旧消费方仍能处理含新可选字段的事件。
- 生产与消费方可独立部署。
- 删除字段前已确认无消费方依赖。
决策点
无法控制部署顺序时宜用完全兼容;需要集中治理时引用注册中心,资源受限的生产方可内嵌 schema。
适用范围
本条目围绕「事件 Schema 演进工作流」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。
{
"schema": "{\"type\":\"record\",\"fields\":[{\"name\":\"channel\",\"type\":\"string\",\"default\":\"web\"}]}",
"compatibility": "BACKWARD"
}