

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 从 KPL 0.x 迁移至 KPL 1.x
<a name="kpl-migration-1x"></a>

本主题提供了将您的消费者从 KPL 0.x 迁移到 KPL 1.x 的 step-by-step说明。KPL 1.x 引入了对 适用于 Java 的 AWS SDK 2.x 的支持，同时保持了与先前版本的接口兼容性。无需更新核心数据处理逻辑即可迁移至 KPL 1.x。

1. **确保有以下先决条件：**
   + Java Development Kit（JDK）8 或更高版本
   + 适用于 Java 的 AWS SDK 2.x
   + 用于依赖项管理的 Maven 或 Gradle

1. **添加依赖关系**

   如果您使用的是 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 存储库](https://central.sonatype.com/search?q=amazon-kinesis-producer)中查看最新版本的 KPL。

1. **更新 KPL 的导入语句**

   KPL 1.x 使用 适用于 Java 的 AWS SDK 2.x 并使用以开头的更新后的软件包名称`software.amazon.kinesis`，而之前的 KPL 中的软件包名称以开头。`com.amazonaws.services.kinesis`

   将 `com.amazonaws.services.kinesis` 的导入替换为 `software.amazon.kinesis`。下表列出了必须替换的导入。  
**导入替换**    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/streams/latest/dev/kpl-migration-1x.html)

1. **更新 AWS 凭证提供程序类的导入语句**

   迁移到 KPL 1.x 时，必须将 KPL 应用程序代码中基于 适用于 Java 的 AWS SDK 1.x 的导入包和类更新为基于 2.x 的相应包和类。 适用于 Java 的 AWS SDK KPL 应用程序中通常导入的是凭证提供程序类。有关[凭证提供程序变更](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/migration-client-credentials.html)的完整列表，请参阅 适用于 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 中导入任何内容，则可以忽略此步骤。

1. **更新 KPL 配置中的凭证提供程序配置**

   KPL 1.x 中的凭证提供程序配置需要 适用于 Java 的 AWS SDK 2.x 凭证提供程序。如果您`KinesisProducerConfiguration`通过覆盖默认凭证提供程序来传递中 适用于 Java 的 AWS SDK 1.x 的凭证提供程序，则必须使用 适用于 Java 的 AWS SDK 2.x 凭据提供程序对其进行更新。有关[凭证提供程序变更](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/migration-client-credentials.html)的完整列表，请参阅 适用于 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());
   ```