

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Java 與 DAX
<a name="DAX.client.run-application-java"></a>

適用於 Java 2.x 的 DAX 軟體開發套件與[適用於 Java 2.x 的AWS 軟體開發套件](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/)相容。它建立在 Java 8\+ 之上，並包含對非封鎖 I/O 的支援。 如需搭配適用於 Java 的 AWS SDK 1.x 使用 DAX 的詳細資訊，請參閱 [搭配適用於 Java 1.x 的 AWS 開發套件使用 DAX](DAX.client.java-sdk-v1.md)。

## 使用用戶端作為 Maven 依存項目
<a name="DAX.client.run-application-java.maven"></a>

遵循這些步驟，在您的應用程式中將 DAX SDK for Java 用戶端做為依存項目使用。

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}} 取代為用戶端的實際版本號碼。

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

## TryDax 範本程式碼
<a name="DAX.client.run-application-java.sample"></a>

在設定工作空間並將 DAX 軟體開發套件新增為依存項目之後，請將 [TryDax.java](DAX.client.TryDax.java.md) 複製到您的專案中。

使用此命令運行程式碼。

```
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.
```

記下計時資訊：`GetItem` 和 `Query` 測試所需要的毫秒數。在此例中，您已針對 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"
  }
  ```

現在重新執行程式，但這一次，請將叢集端點 URL 作為命令列參數指定。

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

查看輸出，並記下計時資訊。使用 DAX 的 `GetItem` 和 `Query` 已耗用時間應遠低於使用 DynamoDB 的已耗用時間。

## 軟體開發套件指標
<a name="DAX.client.run-application-java.metrics"></a>

您可以使用適用於 Java 2.x 的 DAX 軟體開發套件，收集您應用程式中的服務用戶端指標並在 Amazon CloudWatch 中分析輸出。如需詳細資訊，請參閱[啟用 SDK 指標](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/metrics.html)。

**注意**  
適用於 Java 的 DAX 軟體開發套件僅會收集 `ApiCallSuccessful` 和 `ApiCallDuration` 指標。