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

若要執行 的 Java 範例 DAX
  1. 安裝 Java 開發套件 (JDK)。

    sudo yum install -y java-devel
  2. 下載 AWS SDK for Java (.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
    注意

    DAX SDK 適用於 Java 的 用戶端可在 Apache Maven 上使用。如需詳細資訊,請參閱使用用戶端做為 Apache Maven 依存項目

  4. 設定您的 CLASSPATH 變數。在此範例中,sdkVersion以 的實際版本編號取代 AWS SDK for Java (例如,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.

    記下計時資訊:GetItemQueryScan 測試所需要的毫秒數。

  8. 在先前的步驟中,您已針對 DynamoDB 端點執行程式。現在,請再次執行程式,但這次, GetItemQueryScan操作會由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

    查看輸出的剩餘部分,並記下計時資訊。GetItemQuery和 的經過時間Scan應該DAX比 DynamoDB 明顯更低。

如需此程式的詳細資訊,請參閱下列各節:

使用用戶端做為 Apache Maven 依存項目

請依照下列步驟,在您的應用程式中使用適用於 Java DAX SDK 的 用戶端做為相依性。

使用用戶端作為 Maven 依存項目
  1. 下載並安裝 Apache Maven。如需詳細資訊,請參閱下載 Apache Maven安裝 Apache Maven

  2. 將用戶端 Maven 相依性新增至應用程式的 Project Object Model (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>