Java 和 DAX - Amazon DynamoDB

Java 和 DAX

适用于 Java 的 DAX SDK 2.x 兼容适用于 Java 的 AWS SDK 2.x。它基于 Java 8+ 构建,支持非阻塞 I/O。有关使用适用于 Java 的 AWS SDK 1.x 的信息,请参阅 使用 DAX 和 AWS SDK for Java 1.x

将客户端用作 Maven 依赖项

按照这些步骤,在应用程序使用适用于 Java 的 DAX SDK 客户端作为依赖项。

  1. 下载并安装 Apache Maven。有关更多信息,请参见下载 Apache Maven安装 Apache Maven

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

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

TryDax 示例代码

设置工作区并将 DAX SDK 添加为依赖项后,将 TryDax.java 复制到项目。

使用此命令运行代码。

java -cp classpath 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 ... Running GetItem and Query tests... First iteration of each test will result in cache misses Next iterations are cache hits GetItem test - partition key 1-100 and sort keys 1-10 Total time: 4390.240 ms - Avg time: 4.390 ms Total time: 3097.089 ms - Avg time: 3.097 ms Total time: 3273.463 ms - Avg time: 3.273 ms Total time: 3353.739 ms - Avg time: 3.354 ms Total time: 3533.314 ms - Avg time: 3.533 ms Query test - partition key 1-100 and sort keys between 2 and 9 Total time: 475.868 ms - Avg time: 4.759 ms Total time: 423.333 ms - Avg time: 4.233 ms Total time: 460.271 ms - Avg time: 4.603 ms Total time: 397.859 ms - Avg time: 3.979 ms Total time: 466.644 ms - Avg time: 4.666 ms Attempting to delete table; please wait... Successfully deleted table.

记下计时信息—GetItemQuery 测试所需的时间(以毫秒为单位)。在此情况下,对 DynamoDB 端点运行程序。现在,对 DAX 集群再次运行程序。

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

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

    dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
  • 使用 AWS CLI 输入以下命令:

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

    集群端点地址、端口和 URL 显示在输出中,如下面的示例所示。

    { "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 -cp classpath TryDax dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com

查看输出,并记下计时信息。与使用 DynamoDB 相比,使用 DAX 时,GetItemQuery 的运行时间应明显更短。

开发工具包指标

使用适用于 Java 的 DAX SDK 2.x,可以收集应用程序中服务客户端的指标,并在 Amazon CloudWatch 中分析输出。有关更多信息,请参见启用 SDK 指标

注意

适用于 Java 的 DAX SDK 仅收集 ApiCallSuccessfulApiCallDuration 指标。