

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

SDK para Java 2.x de DAX es compatible con [SDK para Java 2.x de AWS](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/). Está construido sobre Java 8\$1 e incluye el soporte para E/S no bloqueado. Para obtener información sobre el uso de DAX con AWS SDK para Java 1.x, consulte [Uso de DAX con SDK de AWS para Java 1.x](DAX.client.java-sdk-v1.md).

## Uso del cliente como una dependencia de Maven
<a name="DAX.client.run-application-java.maven"></a>

Siga estos pasos para utilizar el cliente para el SDK de DAX para Java en su aplicación como una dependencia.

1. Descargue e instale Apache Maven. Para obtener más información, consulte [Downloading Apache Maven](https://maven.apache.org/download.cgi) e [Installing Apache Maven](https://maven.apache.org/install.html).

1. Agregue la dependencia de Maven del cliente al archivo POM (Project Object Model) de la aplicación. En este ejemplo, sustituya *x.x.x* por el número de versión real del cliente.

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

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

Después de configurar el espacio de trabajo y agregar el SDK de DAX como dependencia, copie [TryDax.java](DAX.client.TryDax.java.md) en el proyecto.

Ejecute el código utilizando este comando.

```
java -cp classpath TryDax
```

Debería ver un resultado similar a este.

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

Tome nota de la información de tiempo; es decir, del número de milisegundos necesarios para realizar las pruebas de `GetItem` y `Query`. En este caso, ha ejecutado el programa en el punto de enlace de DynamoDB. Ahora volverá a ejecutar el programa, esta vez en el clúster de DAX.

Para determinar el punto de enlace del clúster de DAX, elija una de las siguientes opciones:
+ En la consola de DynamoDB seleccione su clúster de DAX. El punto de enlace del clúster se muestra dentro de la consola, como en el siguiente ejemplo.

  ```
  dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
  ```
+ Utilizando la AWS CLI, ingrese el siguiente comando.

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

  El puerto, la dirección y la URL del punto de enlace del clúster se muestran en el resultado, como en el siguiente ejemplo.

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

Ahora, vuelva a ejecutar el programa, pero, esta vez, especifique el la URL del punto de enlace del clúster como parámetro en la línea de comandos.

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

Fíjese en el resultado y tome nota de la información sobre tiempos. Los tiempos transcurridos para las operaciones `GetItem` y `Query` deberían ser significativamente menores con DAX que con DynamoDB.

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

Con SDK para Java 2.x de DAX, puede recopilar métricas sobre los clientes de servicio de su aplicación y analizar los resultados en Amazon CloudWatch. Para obtener más información, consulte [Habilitar métricas de SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/metrics.html).

**nota**  
El SDK para Java de DAX solo recopila las métricas `ApiCallSuccessful` y `ApiCallDuration`.