

# 使用 DAX 和 Amazon SDK for Java 1.x
<a name="DAX.client.java-sdk-v1"></a>

按照此过程操作，在 Amazon EC2 实例上运行用于 Amazon DynamoDB Accelerator (DAX) 的 Java 示例。

**注意**  
这些说明针对使用 Amazon SDK for Java 1.x 的应用程序。对于使用 Amazon SDK for Java 2.x 的应用程序，请参阅 [Java 和 DAX](DAX.client.run-application-java.md)。

**运行 DAX 的 Java 示例**

1. 安装 Java 开发工具包 (JDK)。

   ```
   sudo yum install -y java-devel
   ```

1. 下载 适用于 Java 的 Amazon SDK（`.zip` 文件），然后解压缩此文件。

   ```
   wget http://sdk-for-java.amazonwebservices.com/latest/aws-java-sdk.zip
   
   unzip aws-java-sdk.zip
   ```

1. 下载最新版本的 DAX Java 客户端（`.jar` 文件）。

   ```
   wget http://dax-sdk.s3-website-us-west-2.amazonaws.com/java/DaxJavaClient-latest.jar
   ```
**注意**  
Apache Maven 提供用于 Java 的 DAX SDK 客户端。有关更多信息，请参阅 [使用客户端作为 Apache Maven 依赖项](#DAXClient.Maven)。

1. 设置 `CLASSPATH` 变量。在此例中，将 `sdkVersion` 替换为 适用于 Java 的 Amazon SDK 的实际版本号（例如，`1.11.112`）。

   ```
   export SDKVERSION=sdkVersion
   
   export CLASSPATH=$(pwd)/TryDax/java:$(pwd)/DaxJavaClient-latest.jar:$(pwd)/aws-java-sdk-$SDKVERSION/lib/aws-java-sdk-$SDKVERSION.jar:$(pwd)/aws-java-sdk-$SDKVERSION/third-party/lib/*
   ```

1. 下载示例程序源代码（`.zip` 文件）。

   ```
   wget http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/samples/TryDax.zip
   ```

   下载完成后，解压缩源文件。

   ```
   unzip TryDax.zip
   ```

1. 导航到 Java 代码目录并按如下方式编译代码。

   ```
   cd TryDax/java/
   javac TryDax*.java
   ```

1. 运行程序。

   ```
   java TryDax
   ```

   您应该可以看到类似于如下所示的输出内容。

   ```
   Creating a DynamoDB client
   
   Attempting to create table; please wait...
   Successfully created table.  Table status: ACTIVE
   Writing data to the table...
   Writing 10 items for partition key: 1
   Writing 10 items for partition key: 2
   Writing 10 items for partition key: 3
   Writing 10 items for partition key: 4
   Writing 10 items for partition key: 5
   Writing 10 items for partition key: 6
   Writing 10 items for partition key: 7
   Writing 10 items for partition key: 8
   Writing 10 items for partition key: 9
   Writing 10 items for partition key: 10
   
   Running GetItem, Scan, and Query tests...
   First iteration of each test will result in cache misses
   Next iterations are cache hits
   
   GetItem test - partition key 1 and sort keys 1-10
   	Total time: 136.681 ms - Avg time: 13.668 ms
   	Total time: 122.632 ms - Avg time: 12.263 ms
   	Total time: 167.762 ms - Avg time: 16.776 ms
   	Total time: 108.130 ms - Avg time: 10.813 ms
   	Total time: 137.890 ms - Avg time: 13.789 ms
   Query test - partition key 5 and sort keys between 2 and 9
   	Total time: 13.560 ms - Avg time: 2.712 ms
   	Total time: 11.339 ms - Avg time: 2.268 ms
   	Total time: 7.809 ms - Avg time: 1.562 ms
   	Total time: 10.736 ms - Avg time: 2.147 ms
   	Total time: 12.122 ms - Avg time: 2.424 ms
   Scan test - all items in the table
   	Total time: 58.952 ms - Avg time: 11.790 ms
   	Total time: 25.507 ms - Avg time: 5.101 ms
   	Total time: 37.660 ms - Avg time: 7.532 ms
   	Total time: 26.781 ms - Avg time: 5.356 ms
   	Total time: 46.076 ms - Avg time: 9.215 ms
   
   Attempting to delete table; please wait...
   Successfully deleted table.
   ```

   记下计时信息—`GetItem`、`Query` 和 `Scan` 测试所需的时间（以毫秒为单位）。

1. 在上一步中，针对 DynamoDB 端点运行程序。现在再次运行程序，这次 `GetItem`、`Query` 和 `Scan` 操作由 DAX 集群处理。

   要确定 DAX 集群的端点，请选择下列选项之一：
   + **使用 DynamoDB 控制台** — 选择 DAX 集群。集群端点显示在控制台中，如下面的示例所示。

     ```
     dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
     ```
   + **使用 Amazon CLI** — 输入下面的命令。

     ```
     aws dax describe-clusters --query "Clusters[*].ClusterDiscoveryEndpoint"
     ```

     集群端点显示在输出中，如下面的示例所示。

     ```
     {
         "Address": "my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com",
         "Port": 8111,
         "URL": "dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com"
     }
     ```

   现在再次运行程序，这次指定集群端点作为命令行参数。

   ```
   java TryDax dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
   ```

   查看输出的其余内容，并记下计时信息。与使用 DynamoDB 相比，使用 DAX 时，`GetItem`、`Query` 和 `Scan` 的运行时间应明显更短。

有关此程序的更多信息，请参加以下章节：
+ [TryDax.java](DAX.client.run-application-java.TryDax.md)
+ [TryDaxHelper.java](DAX.client.run-application-java.TryDaxHelper.md)
+ [TryDaxTests.java](DAX.client.run-application-java.TryDaxTests.md)

## 使用客户端作为 Apache Maven 依赖项
<a name="DAXClient.Maven"></a>

按照以下步骤，在应用程序中将 DAX SDK for Java 客户端用作依赖项。

**将客户端用作 Maven 依赖项**

1. 下载并安装 Apache Maven。有关更多信息，请参见[下载 Apache Maven](https://maven.apache.org/download.cgi) 和[安装 Apache Maven](https://maven.apache.org/install.html)。

1. 将客户端 Maven 依赖项添加到应用程序的项目对象模型 (POM) 文件。在此示例中，将 `x.x.x.x` 替换为客户端实际版本号（例如 `1.0.200704.0`）。

   ```
   <!--Dependency:-->
   <dependencies>
       <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>amazon-dax-client</artifactId>
        <version>x.x.x.x</version>
       </dependency>
   </dependencies>
   ```