第 2 章 迁移 Service Registry 数据
将数据迁移到 Service Registry 2.x 需要从现有 1.1 部署导出所有数据,并将其导入到新的 2.x 部署中。如果您使用 Service Registry 作为 Kafka 应用程序的模式 registry,则数据迁移至关重要,因为每个 Kafka 消息传输存储在 Service Registry 中的模式的全局标识符。此标识符必须在 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 registry 导出时使用。
先决条件
- 运行您要从中导出的 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.5.10.Final-redhat-00001.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 导出工具。