第 2 章 迁移 Service Registry 数据
将数据迁移到 Service Registry 2.x 需要导出现有 1.1 部署中的所有数据并将其导入到新的 2.x 部署。如果您使用 Service Registry 作为 Kafka 应用程序的 schema registry,则数据迁移至关重要,因为每个 Kafka 消息都传递了存储在 Service Registry 中的 schema 的全局标识符。这个标识符必须在 registry 数据迁移过程中保留。
Service Registry 2.x 提供了一个 API,用于批量导入/导出 registry 部署中的所有数据,这样可保证从现有 registry 导入数据时会保留所有标识符。导出 API 下载包含工件的所有信息的自定义 .zip
文件。导入 API 接受此 .zip
,并将所有工件加载到单一批处理中的 registry 中。
Service Registry 1.1 不提供导入/导出 API。但是,2.x 提供了与 Service Registry 1.1 兼容的导出工具,以导出 .zip
,您可以导入到 2.x registry。此工具使用通用现有 API 导出 registry 中的所有内容。但是,它的性能不低于 2.x 导出 API,只能在从 1.1 注册表导出时使用。
前提条件
- 运行您从中导出的 1.1 服务器的 Service Registry 实例,以及您要导入到的 2.x 服务器。
- 从红帽客户门户网站下载 Service Registry exportV1 工具。这是一个可在命令行中运行的 Java 应用程序。
流程
使用
exportV1
工具导出 Service Registry 1.1 中的所有数据。这会在您的当前目录中生成registry-export.zip
文件:java -jar apicurio-registry-utils-exportV1-2.3.0.Final.jar http://old-registry.my-company.com/api
使用导入 API 将
.zip
文件导入到 Service Registry 2.x 中:curl -X POST "http://new-registry.my-company.com/apis/registry/v2/admin/import" \ -H "Accept: application/json" -H "Content-Type: application/zip" \ --data-binary @registry-export.zip
运行这些命令并比较 count 字段,检查所有工件是否已导入到新的 2.x registry 中:
curl "http://old-registry.my-company.com/api/search/artifacts"
curl "http://new-registry.my-company.com/apis/registry/v2/search/artifacts"
其他资源
- 有关导入/导出 REST API 的详情,请参阅 Service Registry 用户指南
- 有关从版本 1.x 迁移到 2.x 的导出工具的详情,请参考 1.x 版本的 Apicurio Registry 导出实用程序