View a markdown version of this page

使用 DAX 和 AWS SDK for Java 1.x - Amazon DynamoDB

使用 DAX 和 AWS SDK for Java 1.x

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

注意

这些说明针对使用 AWS SDK for Java 1.x 的应用程序。对于使用 AWS SDK for Java 2.x 的应用程序,请参阅 Java 和 DAX。

运行 DAX 的 Java 示例
  1. 安装 Java 开发工具包 (JDK)。

    sudo yum install -y java-devel
  2. 下载 适用于 Java 的 AWS SDK(.zip 文件),然后解压缩此文件。

    wget http://sdk-for-java.amazonwebservices.com/latest/aws-java-sdk.zip unzip aws-java-sdk.zip
  3. 下载最新版本的 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 依赖项。

  4. 设置 CLASSPATH 变量。在此例中,将 sdkVersion 替换为 适用于 Java 的 AWS 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/*
  5. 下载示例程序源代码(.zip 文件)。

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

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

    unzip TryDax.zip
  6. 导航到 Java 代码目录并按如下方式编译代码。

    cd TryDax/java/ javac TryDax*.java
  7. 运行程序。

    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 测试所需的时间(以毫秒为单位)。

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

    要确定 DAX 集群的端点,请选择下列选项之一:

    • 使用 DynamoDB 控制台 — 选择 DAX 集群。集群端点显示在控制台中,如下面的示例所示。

      dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
    • 使用 AWS 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 的运行时间应明显更短。

有关此程序的更多信息,请参加以下章节:

使用客户端作为 Apache Maven 依赖项

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

将客户端用作 Maven 依赖项
  1. 下载并安装 Apache Maven。有关更多信息,请参见下载 Apache Maven 和安装 Apache Maven。

  2. 将客户端 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>