使用 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 示例
-
安装 Java 开发工具包 (JDK)。
sudo yum install -y java-devel
-
下载 AWS SDK for Java(
.zip
文件),然后解压缩此文件。wget http://sdk-for-java.amazonwebservices.com/latest/aws-java-sdk.zip unzip aws-java-sdk.zip
-
下载最新版本的 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 依赖项。
-
设置
CLASSPATH
变量。在此例中,将
替换为 AWS SDK for Java 的实际版本号(例如,sdkVersion
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/* -
下载示例程序源代码(
.zip
文件)。wget http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/samples/TryDax.zip
下载完成后,解压缩源文件。
unzip TryDax.zip
-
导航到 Java 代码目录并按如下方式编译代码。
cd TryDax/java/ javac TryDax*.java
-
运行程序。
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
测试所需的时间(以毫秒为单位)。 -
在上一步中,针对 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 依赖项
-
下载并安装 Apache Maven。有关更多信息,请参见下载 Apache Maven
和安装 Apache Maven 。 -
将客户端 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>