← 中文资源

简体中文版本

事件 Schema 演进工作流

为事件 schema 做版本管理、以兼容方式迁移生产方与消费方,并用注册中心在到达 broker 前拦截不兼容变更。

阅读英文原文

概述

生产方与消费方独立部署时,schema 变更如果没有兼容规则,会在某一侧上线后立刻破坏另一侧。先在注册中心声明兼容模式,让不兼容变更在发布时即被拒绝;新字段以带默认值的可选字段先行,删除则等全部消费方迁移完成。

关键步骤

  1. 定义兼容策略(向后、向前或完全)。
  2. 注册每个版本并由注册中心检查兼容性。
  3. 先以带默认值的可选字段引入新字段。
  4. 仅在全部消费方迁移后删除字段。

验证

  • 注册中心拒绝不兼容变更。
  • 旧消费方仍能处理含新可选字段的事件。
  • 生产与消费方可独立部署。
  • 删除字段前已确认无消费方依赖。

决策点

无法控制部署顺序时宜用完全兼容;需要集中治理时引用注册中心,资源受限的生产方可内嵌 schema。

适用范围

本条目围绕「事件 Schema 演进工作流」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。

{
  "schema": "{\"type\":\"record\",\"fields\":[{\"name\":\"channel\",\"type\":\"string\",\"default\":\"web\"}]}",
  "compatibility": "BACKWARD"
}