本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
从 KPL 0.x 迁移至 KPL 1.x
本主题提供了将您的消费者从 KPL 0.x 迁移到 KPL 1.x 的 step-by-step说明。KPL 1.x 引入了对 AWS SDK for Java 2.x 的支持,同时保持了与先前版本的接口兼容性。无需更新核心数据处理逻辑即可迁移至 KPL 1.x。
-
确保有以下先决条件:
-
Java Development Kit(JDK)8 或更高版本
-
AWS SDK for Java 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 使用 AWS SDK for Java 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 应用程序代码中基于 AWS SDK for Java 1.x 的导入包和类更新为基于 2.x 的相应包和类。 AWS SDK for Java KPL 应用程序中通常导入的是凭证提供程序类。有关凭证提供程序变更的完整列表,请参阅 AWS SDK for Java 2.x 迁移指南文档中的凭证提供程序更改。下面是可能需要在 KPL 应用程序中进行的常见导入更改。
KPL 0.x 中的导入
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;KPL 1.x 中的导入
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;如果您导入任何其他基于 AWS SDK for Java 1.x 的凭证提供程序,则必须将其更新为 AWS SDK for Java 2.x 的等效凭证提供程序。如果您没有 classes/packages 从 AWS SDK for Java 1.x 中导入任何内容,则可以忽略此步骤。
-
更新 KPL 配置中的凭证提供程序配置
KPL 1.x 中的凭证提供程序配置需要 AWS SDK for Java 2.x 凭证提供程序。如果您
KinesisProducerConfiguration通过覆盖默认凭证提供程序来传递中 AWS SDK for Java 1.x 的凭证提供程序,则必须使用 AWS SDK for Java 2.x 凭据提供程序对其进行更新。有关凭证提供程序变更的完整列表,请参阅 AWS SDK for Java 2.x 迁移指南文档中的凭证提供程序更改。如果未覆盖 KPL 配置中的默认凭证提供程序,可忽略此步骤。例如,如果要使用以下代码覆盖 KPL 的默认凭证提供程序:
KinesisProducerConfiguration config = new KinesisProducerConfiguration(); // SDK v1 default credentials provider config.setCredentialsProvider(new DefaultAWSCredentialsProviderChain());必须使用以下代码进行更新才能使用 AWS SDK for Java 2.x 凭证提供程序:
KinesisProducerConfiguration config = new KinesisProducerConfiguration(); // New SDK v2 default credentials provider config.setCredentialsProvider(DefaultCredentialsProvider.create());