

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

O DAX SDK para Java 2.x é compatível com o [AWSSDK para Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/). Ele foi criado com base no Java 8\+ e inclui suporte a E/S sem bloqueio. Para ter informações sobre como usar o DAX com o AWS SDK para Java 1.x, consulte [Uso do DAX com o AWS SDK for Java 1.x](DAX.client.java-sdk-v1.md).

## Como usar o cliente como uma dependência do Maven
<a name="DAX.client.run-application-java.maven"></a>

Siga estas etapas para usar o cliente do SDK do DAX para Java em seu aplicativo como uma dependência.

1. Faça download do Apache Maven e instale-o. Para obter mais informações, consulte [Download do Apache Maven](https://maven.apache.org/download.cgi) e [Instalação do Apache Maven](https://maven.apache.org/install.html).

1. Adicione a dependência do cliente Maven ao arquivo Project Object Model (POM) da aplicação. Neste exemplo, substitua {{x.x.x}} pelo número da versão real do cliente.

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

## Código de exemplo do TryDax
<a name="DAX.client.run-application-java.sample"></a>

Depois de configurar seu espaço de trabalho e adicionar o DAX SDK como uma dependência, copie[TryDax.java](DAX.client.TryDax.java.md) para seu projeto.

Execute o código usando este comando.

```
java -cp {{classpath}} TryDax
```

Você deve ver saída semelhante ao seguinte:

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

Anote as informações de tempo — o número de milissegundos necessários para os testes `GetItem` e `Query`. Neste caso, você executou o programa no endpoint do DynamoDB. Agora você executará o programa novamente, desta vez em seu cluster do DAX.

Para determinar o endpoint do cluster do DAX, escolha uma das seguintes opções:
+ Usando o console do DynamoDB, selecione seu cluster do DAX. O endpoint do cluster é mostrado no console, como no exemplo a seguir.

  ```
  dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
  ```
+ Usando a AWS CLI, insira o comando seguir.

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

  A porta, o endereço e o URL do endpoint do cluster aparecem na saída, como no exemplo a seguir.

  ```
  {
      "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"
  }
  ```

Agora execute o programa novamente, mas, desta vez, especifique o URL do endpoint do cluster como um parâmetro de linha de comando.

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

Observe o restante da saída e anote as informações de tempo. Os tempos decorridos para `GetItem` e `Query` devem ser significativamente mais baixos com o DAX do que com o DynamoDB.

## Métricas do SDK
<a name="DAX.client.run-application-java.metrics"></a>

Com o DAX SDK para Java 2.x, você pode coletar métricas sobre os clientes de serviço em sua aplicação e analisar a saída no Amazon CloudWatch. Consulte [Habilitar métricas do SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/metrics.html) para obter mais informações.

**nota**  
O DAX SDK para Java coleta somente métricas `ApiCallSuccessful` e `ApiCallDuration`.