第 2 章 迁移 Apicurio Registry 数据
将数据迁移到 Apicurio Registry 2.x 需要从现有 1.1 部署导出所有数据,并将其导入到新的 2.x 部署中。如果您使用 Apicurio Registry 作为 Kafka 应用程序的模式 registry,则数据迁移至关重要,因为每个 Kafka 消息传输存储在 Apicurio Registry 中的 schema 的全局标识符。此标识符必须在 registry 数据迁移过程中保留。
Apicurio Registry 2.x 提供了一个 API,用于批量导入/导出 registry 部署中的所有数据,这样可保证从现有 registry 导入数据时保留所有标识符。导出 API 下载自定义 .zip 文件,其中包含您的工件的所有信息。导入 API 接受此 .zip,并将所有工件加载到单个批处理中的 registry 中。
Apicurio Registry 1.1 不提供导入/导出 API。但是,版本 2.x 提供与 Apicurio Registry 1.1 兼容的导出工具,以导出 .zip,您可以导入到 2.x registry。此工具使用通用现有 API 来导出 registry 中的所有内容。但是,它的性能小于 2.x 导出 API,并且仅在从 1.1 registry 导出时使用。
前提条件
- 运行您要从中导出的 1.1 服务器的 Apicurio Registry 实例,以及您要导入的 2.x 服务器。
- 从红帽客户门户网站下载 Apicurio Registry exportV1 工具。这是您可以在命令行中运行的 Java 应用程序。
流程
使用
exportV1工具导出 Apicurio 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
java -jar apicurio-registry-utils-exportV1-2.5.10.Final-redhat-00001.jar http://old-registry.my-company.com/apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用导入 API 将
.zip文件导入到 Apicurio 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
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.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令并比较 count 字段,检查所有工件是否已导入到新的 2.x registry 中:
curl "http://old-registry.my-company.com/api/search/artifacts"
curl "http://old-registry.my-company.com/api/search/artifacts"Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl "http://new-registry.my-company.com/apis/registry/v2/search/artifacts"
curl "http://new-registry.my-company.com/apis/registry/v2/search/artifacts"Copy to Clipboard Copied! Toggle word wrap Toggle overflow