迁移 Service Registry 部署


Red Hat Integration 2022.Q3

迁移到 Service Registry 2.0

摘要

本指南描述了 Service Registry 版本 2.x 的主要更改,并解释了如何将现有 Service Registry 版本 1.1 部署迁移到版本 2.x。

前言

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息

第 1 章 从 Service Registry 1.1 迁移到 2.x

Service Registry 2.x 包括可能会破坏之前 Service Registry 1.1 发行版本的更改的功能。本节论述了 Service Registry 1.1 和版本 2.x 之间的主要变化。

由于 2.x 中有破坏的变化,因此不需要自动升级,而且需要迁移过程。这涉及将现有 registry 中的数据移到新 registry 中。您还必须查看现有的 registry 客户端应用程序,并更新它们的配置以满足新要求。

当迁移到版本 2.x 时,您必须考虑以下主要更改:

1.1. 新的数据存储选项

Service Registry 1.1 中的现有 registry 数据存储选项(jpainfinispan)已被替换为 2.x 版本(sqlkafkasql)中的新存储选项。这些新存储选项提供更强大的、性能及可维护的 Service Registry 部署。

如需有关如何使用您选择的存储选项部署 Service Registry 2.x 的详情,请参阅 在 OpenShift 上安装和部署服务 registry

1.2. 新的 v2 REST API

Service Registry 2.x 包括新的 REST API,它支持工件组并改进了长期可维护性。Service Registry 仍支持原始 registry v1 REST API 和兼容性 API,例如 Confluent 和 IBM schema registry API。Service Registry 现在还实现 CNCF Cloud Events 规格中提供的 Schema Registry 规格。

1.3. 重构的 Java 客户端库

  • Service Registry Java 客户端类在版本 2.x 中用于名为 apicurio-registry-client 的不同 Maven 模块。
  • Kakfa 客户端序列化程序和反序列化程序(SerDe)类以三个不同的 Maven 模块提供,每个支持的数据格式对应一个:Apache Avro、Atobuf 和 JSON Schema。现在,您只能使用您想要的模块,而无需拉取您不关注的依赖软件包。

第 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 导入数据时会保留所有标识符。export API 下载包含工件的所有信息的自定义 .zip 文件。导入 API 接受此 .zip,并将所有工件加载到一个批处理中的注册表中。

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 实例。
  • 从红帽客户门户网站下载 Service Registry exportV1 工具。这是您可以在命令行中运行的 Java 应用程序。

流程

  1. 使用 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
    Copy to Clipboard Toggle word wrap
  2. 使用导入 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
    Copy to Clipboard Toggle word wrap
  3. 通过运行这些命令并比较 count 字段,检查所有工件是否已导入到新的 2.x registry 中:

    curl "http://old-registry.my-company.com/api/search/artifacts"
    Copy to Clipboard Toggle word wrap
    curl "http://new-registry.my-company.com/apis/registry/v2/search/artifacts"
    Copy to Clipboard Toggle word wrap

第 3 章 迁移 Service Registry 客户端应用程序

您必须查看现有的 Service Registry 客户端应用程序,以确保 Maven 依赖项和 Java 客户端配置满足版本 2.x 的新要求。例如,这包括 Service Registry Java REST 客户端库或 Kafka 客户端序列化r/deserializer(Serdes)库的新 Maven 依赖项。您还必须使用新的 registry v2 API 路径更新 Java 应用程序配置。

先决条件

  • 现有 Service Registry 1.1 Java 客户端应用程序,或使用 SerDes 的 Kafka 客户端制作者和消费者 Java 应用程序

流程

  1. 如果使用 Service Registry Java REST 客户端,您必须更改 Service Registry Java 客户端库的 Maven 依赖项,该依赖关系已在 2.x 版本中被重新打包:

    <dependency>
        <groupId>io.apicurio</groupId>
        <artifactId>apicurio-registry-client</artifactId>
        <version>2.3.0.Final</version>
    </dependency>
    Copy to Clipboard Toggle word wrap
  2. 在 Java 客户端应用程序中,您必须更改 registry URL 配置,使其指向新 v2 路径的现有 v1 API 路径。例如:

    public class ClientExample {
    
        private static final RegistryRestClient client;
    
         public static void main(String[] args) throws Exception {
            // Create a registry client
            String registryUrl = "https://new-registry.my-company.com/apis/registry/v2";
            RegistryClient client = RegistryClientFactory.create(registryUrl);
        }
    }
    Copy to Clipboard Toggle word wrap

    您可以在 Service Registry 用户指南 中找到有关 Java 客户端的更多详细信息。

  3. 如果使用 Service Registry SerDes 库,您必须更改 Maven 依赖项,该依赖项已在 2.x 中重新打包。在 Service Registry 1.1 中,SerDes 库只提供一个 Maven 依赖项:

    <dependency>
        <groupId>io.apicurio</groupId>
        <artifactId>apicurio-registry-utils-serde</artifactId>
        <version>1.3.2.Final</version>
    </dependency>
    Copy to Clipboard Toggle word wrap

    在 Service Registry 2.x 中,SerDes 库被分成三个 Maven 依赖项,每个支持的数据格式对应: avro protobuf、protobuf 和 json 模式,具体取决于您的用例:

    <dependency>
        <groupId>io.apicurio</groupId>
        <artifactId>apicurio-registry-serdes-avro-serde</artifactId>
        <version>2.3.0.Final</version>
    </dependency>
    <dependency>
        <groupId>io.apicurio</groupId>
        <artifactId>apicurio-registry-serdes-protobuf-serde</artifactId>
        <version>2.3.0.Final</version>
    </dependency>
    <dependency>
        <groupId>io.apicurio</groupId>
        <artifactId>apicurio-registry-serdes-jsonschema-serde</artifactId>
        <version>2.3.0.Final</version>
    </dependency>
    Copy to Clipboard Toggle word wrap
  4. 在 Kafka producer 和消费者 Java 应用程序中,您必须更改 registry URL 配置,使其指向新的 v2 路径。例如:

    现有 registry v1 API 路径

    props.putIfAbsent(AbstractKafkaSerDe.REGISTRY_URL_CONFIG_PARAM, "http://old-registry.my-company.com/api");
    Copy to Clipboard Toggle word wrap

    新的 registry v2 API 路径

    props.putIfAbsent(SerdeConfig.REGISTRY_URL, "http://new-registry.my-company.com/apis/registry/v2");
    Copy to Clipboard Toggle word wrap

    重构的 SerDes 库还包含对配置属性的其他重要更改。有关 SerDes 配置的详情,请参阅 Service Registry 用户指南

附录 A. 使用您的订阅

Service Registry 通过软件订阅提供。要管理您的订阅,请访问红帽客户门户中的帐户。

访问您的帐户

  1. 转至 access.redhat.com
  2. 如果您还没有帐户,请创建一个帐户。
  3. 登录到您的帐户。

激活订阅

  1. 转至 access.redhat.com
  2. 导航到 My Subscriptions
  3. 导航到 激活订阅 并输入您的 16 位激活号。

下载 ZIP 和 TAR 文件

要访问 ZIP 或 TAR 文件,请使用客户门户网站查找要下载的相关文件。如果您使用 RPM 软件包,则不需要这一步。

  1. 打开浏览器并登录红帽客户门户网站 产品下载页面,网址为 access.redhat.com/downloads
  2. 在 Integration 和 Automation 类别中找到 Red Hat Integration 条目。
  3. 选择所需的 Service Registry 产品。此时会打开 Software Downloads 页面。
  4. 单击组件的 Download 链接。

为系统注册软件包

要在 Red Hat Enterprise Linux 中安装 RPM 软件包,必须注册您的系统。如果使用 ZIP 或 TAR 文件,则不需要这一步。

  1. 转至 access.redhat.com
  2. 进入 Registration Assistant
  3. 选择您的操作系统版本,再继续到下一页。
  4. 使用您的系统终端中列出的命令完成注册。

如需了解更多信息 ,请参阅如何在红帽客户门户网站中注册和订阅系统

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat