本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
从 KPL 0.x 迁移至 KPL 1.x
本主题提供了将您的消费者从 KPL 0.x 迁移到 KPL 1.x 的 step-by-step说明。KPL 1.x 引入了对 适用于 Java 的 AWS SDK 2.x 的支持,同时保持了与先前版本的接口兼容性。无需更新核心数据处理逻辑即可迁移至 KPL 1.x。
-
确保有以下先决条件:
-
Java Development Kit(JDK)8 或更高版本
-
适用于 Java 的 AWS SDK 2.x
-
用于依赖项管理的 Maven 或 Gradle
-
-
添加依赖关系
如果您使用的是 Maven,请将以下依赖项添加到您的 pom.xml 文件中。务必将 GroupID 从
com.amazonaws更新到software.amazon.kinesis,并将版本1.x.x更新到最新的 KPL 版本。<dependency> <groupId>software.amazon.kinesis</groupId> <artifactId>amazon-kinesis-producer</artifactId> <version>1.x.x</version> <!-- Use the latest version --> </dependency>如果使用 Gradle,请在
build.gradle文件中添加以下信息。请务必将1.x.x替换为最新 KPL 版本。implementation 'software.amazon.kinesis:amazon-kinesis-producer:1.x.x'可以在 Maven Central 存储库
中查看最新版本的 KPL。 -
更新 KPL 的导入语句
KPL 1.x 使用 适用于 Java 的 AWS SDK 2.x 并使用以开头的更新后的软件包名称
software.amazon.kinesis,而之前的 KPL 中的软件包名称以开头。com.amazonaws.services.kinesis将
com.amazonaws.services.kinesis的导入替换为software.amazon.kinesis。下表列出了必须替换的导入。导入替换 进行如下替换: 借助: import com.amazonaws.services.kinesis.producer.Attempt;
import software.amazon.kinesis.producer.Attempt;
import com.amazonaws.services.kinesis.p BinaryToHexConverter;
导入软件.amazon.kinesis.producer。 BinaryToHexConverter;
import com.amazonaws.services.kinesis.p CertificateExtractor;
导入软件.amazon.kinesis.producer。 CertificateExtractor;
import com.amazonaws.services.kinesis.producer.Daemon;
import software.amazon.kinesis.producer.Daemon;
import com.amazonaws.services.kinesis.p DaemonException;
导入软件.amazon.kinesis.producer。 DaemonException;
import com.amazonaws.services.kinesis.p FileAgeManager;
导入软件.amazon.kinesis.producer。 FileAgeManager;
import com.amazonaws.services.kinesis.p FutureTimedOutException;
导入软件.amazon.kinesis.producer。 FutureTimedOutException;
import com.amazonaws.services.kinesis.p GlueSchemaRegistrySerializerInstance;
导入软件.amazon.kinesis.producer。 GlueSchemaRegistrySerializerInstance;
import com.amazonaws.services.kinesis.p HashedFileCopier;
导入软件.amazon.kinesis.producer。 HashedFileCopier;
import com.amazonaws.services.kinesis.p IKinesis制片人;
导入软件.amazon.kinesis.producer。 IKinesis制片人;
import com.amazonaws.services.kinesis.p IrrecoverableError;
导入软件.amazon.kinesis.producer。 IrrecoverableError;
import com.amazonaws.services.kinesis.p KinesisProducer;
导入软件.amazon.kinesis.producer。 KinesisProducer;
import com.amazonaws.services.kinesis.p KinesisProducerConfiguration;
导入软件.amazon.kinesis.producer。 KinesisProducerConfiguration;
import com.amazonaws.services.kinesis.p LogInputStreamReader;
导入软件.amazon.kinesis.producer。 LogInputStreamReader;
import com.amazonaws.services.kinesis.producer.Metric;
import software.amazon.kinesis.producer.Metric;
import com.amazonaws.services.kinesis.p ProcessFailureBehavior;
导入软件.amazon.kinesis.producer。 ProcessFailureBehavior;
import com.amazonaws.services.kinesis.p UnexpectedMessageException;
导入软件.amazon.kinesis.producer。 UnexpectedMessageException;
import com.amazonaws.services.kinesis.p UserRecord;
导入软件.amazon.kinesis.producer。 UserRecord;
import com.amazonaws.services.kinesis.p UserRecordFailedException;
导入软件.amazon.kinesis.producer。 UserRecordFailedException;
import com.amazonaws.services.kinesis.p UserRecordResult;
导入软件.amazon.kinesis.producer。 UserRecordResult;
import com.amazonaws.services.kinesis.producer.protobuf.Messages;
import software.amazon.kinesis.producer.protobuf.Messages;
import com.amazonaws.services.kinesis.producer.protobuf.Config;
import software.amazon.kinesis.producer.protobuf.Config;
-
更新 AWS 凭证提供程序类的导入语句
迁移到 KPL 1.x 时,必须将 KPL 应用程序代码中基于 适用于 Java 的 AWS SDK 1.x 的导入包和类更新为基于 2.x 的相应包和类。 适用于 Java 的 AWS SDK KPL 应用程序中通常导入的是凭证提供程序类。有关凭证提供程序变更的完整列表,请参阅 适用于 Java 的 AWS SDK 2.x 迁移指南文档中的凭证提供程序更改。下面是可能需要在 KPL 应用程序中进行的常见导入更改。
KPL 0.x 中的导入
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;KPL 1.x 中的导入
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;如果您导入任何其他基于 适用于 Java 的 AWS SDK 1.x 的凭证提供程序,则必须将其更新为 适用于 Java 的 AWS SDK 2.x 的等效凭证提供程序。如果您没有 classes/packages 从 适用于 Java 的 AWS SDK 1.x 中导入任何内容,则可以忽略此步骤。
-
更新 KPL 配置中的凭证提供程序配置
KPL 1.x 中的凭证提供程序配置需要 适用于 Java 的 AWS SDK 2.x 凭证提供程序。如果您
KinesisProducerConfiguration通过覆盖默认凭证提供程序来传递中 适用于 Java 的 AWS SDK 1.x 的凭证提供程序,则必须使用 适用于 Java 的 AWS SDK 2.x 凭据提供程序对其进行更新。有关凭证提供程序变更的完整列表,请参阅 适用于 Java 的 AWS SDK 2.x 迁移指南文档中的凭证提供程序更改。如果未覆盖 KPL 配置中的默认凭证提供程序,可忽略此步骤。例如,如果要使用以下代码覆盖 KPL 的默认凭证提供程序:
KinesisProducerConfiguration config = new KinesisProducerConfiguration(); // SDK v1 default credentials provider config.setCredentialsProvider(new DefaultAWSCredentialsProviderChain());必须使用以下代码进行更新才能使用 适用于 Java 的 AWS SDK 2.x 凭证提供程序:
KinesisProducerConfiguration config = new KinesisProducerConfiguration(); // New SDK v2 default credentials provider config.setCredentialsProvider(DefaultCredentialsProvider.create());