迁移 Apicurio Registry 部署
迁移到 Apicurio Registry 2.3
摘要
前言 复制链接链接已复制到粘贴板!
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
第 1 章 从 Apicurio Registry 1.1 迁移到 2.x 复制链接链接已复制到粘贴板!
Apicurio Registry 2.x 包含对之前 Apicurio Registry 1.1 版本的破坏更改的新功能。本节论述了 Apicurio Registry 1.1 和版本 2.x 之间的主要变化。
由于 2.x 中的破坏更改,因此不需要自动升级和迁移过程。这涉及将现有 registry 中的数据移至新 registry 中。您还必须检查现有的 registry 客户端应用程序,并更新其配置以满足新要求。
当迁移到 2.x 版本时,您必须考虑以下主要更改:
1.1. 新数据存储选项 复制链接链接已复制到粘贴板!
Apicurio Registry 1.1 中的现有 registry 数据存储选项(流、jpa 和 infinispan)已被版本 2.x 中的新存储选项(sql 和 kafkasql)替代。这些新存储选项提供更强大、高性能和可维护的 Apicurio Registry 部署。
有关如何使用所选存储选项部署 Apicurio Registry 2.x 的详情,请参阅在 OpenShift 中安装和部署 Red Hat build of Apicurio Registry。
1.2. 新的 v2 REST API 复制链接链接已复制到粘贴板!
Apicurio Registry 2.x 包括一个新的 REST API,支持工件组并提高了长期可维护性。Apicurio Registry 仍支持原始 registry v1 REST API 和兼容性 API,如 Confluent 和 IBM schema registry API。Apicurio Registry 现在实现了 CNCF Cloud Events 规格中提供的 Schema Registry 规格。
1.3. 重构的 Java 客户端库 复制链接链接已复制到粘贴板!
-
Apicurio Registry Java 客户端类位于名为
apicurio-registry-client的不同 Maven 模块中的版本 2.x 中。 - Kafka 客户端序列化器和反序列化器(SerDes)类以三个不同的 Maven 模块在 2.x 版本中提供,每个支持的数据格式对应一种:Apache Avro、Protobuf 和 JSON Schema。现在,您只能在没有拉取您不担心的依赖项的情况下使用的模块。
第 2 章 迁移 Apicurio Registry 数据 复制链接链接已复制到粘贴板!
将数据迁移到 Apicurio Registry 2.x 要求从现有的 1.1 部署中导出所有数据,并将它导入到新的 2.x 部署。如果您使用 Apicurio Registry 作为 Kafka 应用程序的 schema 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 注册表导出时使用。
前提条件
- 运行您从中导出的 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.3.3.Final.jar http://old-registry.my-company.com/api
java -jar apicurio-registry-utils-exportV1-2.3.3.Final.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
第 3 章 迁移 Apicurio Registry 客户端应用程序 复制链接链接已复制到粘贴板!
您必须检查现有的 Apicurio Registry 客户端应用程序,以确保 Maven 依赖项和 Java 客户端配置满足版本 2.x 的新要求。例如,这包括 Apicurio Registry Java REST 客户端库或 Kafka 客户端序列化器(Serdes)库的新 Maven 依赖项。您还必须使用新的 registry v2 API 路径更新 Java 应用程序配置。
前提条件
- 现有 Apicurio Registry 1.1 Java 客户端应用程序或 Kafka 客户端制作者和具有 SerDes 的使用者 Java 应用程序
流程
如果您使用 Apicurio Registry Java REST 客户端,您必须更改 Apicurio Registry Java 客户端库的 Maven 依赖项,在版本 2.x 中被重新打包:
<dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-client</artifactId> <version>2.3.3.Final</version> </dependency><dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-client</artifactId> <version>2.3.3.Final</version> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Java 客户端应用程序中,您必须更改 registry URL 配置,使其指向现有的 v1 API 路径到新的 v2 路径。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以在 红帽构建的 Apicurio Registry User Guide 中找到有关 Java 客户端的更多详细信息。
如果您使用 Apicurio Registry SerDes 库,您必须更改 Maven 依赖项,这已在 2.x 版本中重新打包。在 Apicurio Registry 1.1 中,SerDes 库只提供一个 Maven 依赖项:
<dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-utils-serde</artifactId> <version>1.3.2.Final</version> </dependency><dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-utils-serde</artifactId> <version>1.3.2.Final</version> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Apicurio Registry 2.x 中,SerDes 库被分成三个 Maven 依赖项,每个支持的数据格式对应一个:
avro、protobuf和json 模式,具体取决于您的用例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Kafka 生成者和消费者 Java 应用程序中,您必须更改 registry URL 配置,将其从指向现有的 v1 API 路径改为指向新的 v2 路径。例如:
现有 registry v1 API 路径 :
props.putIfAbsent(AbstractKafkaSerDe.REGISTRY_URL_CONFIG_PARAM, "http://old-registry.my-company.com/api");
props.putIfAbsent(AbstractKafkaSerDe.REGISTRY_URL_CONFIG_PARAM, "http://old-registry.my-company.com/api");Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新的 registry v2 API 路径 :
props.putIfAbsent(SerdeConfig.REGISTRY_URL, "http://new-registry.my-company.com/apis/registry/v2");
props.putIfAbsent(SerdeConfig.REGISTRY_URL, "http://new-registry.my-company.com/apis/registry/v2");Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重构的 SerDes 库还包括对配置属性的其他重要更改。有关 SerDes 配置的详情,请参阅 Red Hat build of Apicurio Registry User Guide。
附录 A. 使用您的订阅 复制链接链接已复制到粘贴板!
Apicurio Registry 通过软件订阅提供。要管理您的订阅,请访问红帽客户门户中的帐户。
访问您的帐户
- 转至 access.redhat.com。
- 如果您还没有帐户,请创建一个帐户。
- 登录到您的帐户。
激活订阅
- 转至 access.redhat.com。
- 导航到 My Subscriptions。
- 导航到 激活订阅 并输入您的 16 位激活号。
下载 ZIP 和 TAR 文件
要访问 ZIP 或 TAR 文件,请使用客户门户网站查找下载的相关文件。如果您使用 RPM 软件包,则不需要这一步。
- 打开浏览器并登录红帽客户门户网站 产品下载页面,网址为 access.redhat.com/downloads。
- 找到 Integration and Automation 类别中的 Red Hat Integration 条目。
- 选择所需的 Apicurio Registry 产品。此时会打开 Software Downloads 页面。
- 单击组件的 Download 链接。
为系统注册软件包
要在 Red Hat Enterprise Linux 上安装 RPM 软件包,必须注册您的系统。如果您使用 ZIP 或 TAR 文件,则不需要这一步。
- 转至 access.redhat.com。
- 进入 Registration Assistant。
- 选择您的操作系统版本,再继续到下一页。
- 使用您的系统终端中列出的命令完成注册。
如需了解更多相关信息,请参阅 如何注册到红帽客户门户网站(Red Hat Customer Portal )