第 3 章 迁移 Service Registry 客户端应用程序
您必须检查现有的 Service Registry 客户端应用程序,以确保 Maven 依赖项和 Java 客户端配置满足版本 2.x 的新要求。例如,这包括 Service Registry Java REST 客户端库或 Kafka 客户端序列化器/反序列化器(Serdes)库的新 Maven 依赖项。您还必须使用新的 registry v2 API 路径更新 Java 应用程序配置。
先决条件
- 现有 Service Registry 1.1 Java 客户端应用程序或 Kafka 客户端制作者,以及带有 SerDes 的消费者 Java 应用程序
流程
如果使用 Service Registry Java REST 客户端,您必须更改 Service Registry Java 客户端库的 Maven 依赖项,该库已在 2.x 版本中重新打包:
<dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-client</artifactId> <version>2.4.3.Final-redhat-00006</version> </dependency>
在 Java 客户端应用程序中,您必须更改 registry URL 配置,使其从指向现有的 v1 API 路径到新的 v2 路径。例如:
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); } }
您可以在 Service Registry 用户指南 中找到有关 Java 客户端的更多详细信息。
如果使用 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-redhat-00002</version> </dependency>
在 Service Registry 2.x 中,SerDes 库被分成三个 Maven 依赖项,每个支持的数据格式一个:
avro
、protobuf
和json 模式
,取决于您的用例:<dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-serdes-avro-serde</artifactId> <version>2.4.3.Final-redhat-00006</version> </dependency> <dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-serdes-protobuf-serde</artifactId> <version>2.4.3.Final-redhat-00006</version> </dependency> <dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-serdes-jsonschema-serde</artifactId> <version>2.4.3.Final-redhat-00006</version> </dependency>
在 Kafka producer 和消费者 Java 应用程序中,您必须更改 registry URL 配置,使其从指向现有的 v1 API 路径。例如:
现有 registry v1 API 路径 :
props.putIfAbsent(AbstractKafkaSerDe.REGISTRY_URL_CONFIG_PARAM, "http://old-registry.my-company.com/api");
新的 registry v2 API 路径 :
props.putIfAbsent(SerdeConfig.REGISTRY_URL, "http://new-registry.my-company.com/apis/registry/v2");
重构的 SerDes 库还包括对配置属性的其他重要更改。有关 SerDes 配置的详情,请参阅 Service Registry 用户指南。
其他资源
- 有关详细配置示例,请参阅 Apicurio Registry 示例应用程序。