Paso 6: (Opcional) Prácticas recomendadas para configurar el tamaño del grupo de conexiones para su aplicación - Amazon Keyspaces (para Apache Cassandra)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Paso 6: (Opcional) Prácticas recomendadas para configurar el tamaño del grupo de conexiones para su aplicación

En esta sección le explicamos la forma de determinar el tamaño ideal del grupo de conexiones en función de los requisitos de rendimiento de las consultas de su aplicación.

Amazon Keyspaces permite un máximo de 3000 consultas CQL por segundo por conexión TCP. Por tanto, no hay prácticamente ningún límite en el número de conexiones que un controlador puede establecer con Amazon Keyspaces. No obstante, le recomendamos que adapte el tamaño del grupo de conexiones a los requisitos de su aplicación y tenga en cuenta los puntos de conexión disponibles al utilizar Amazon Keyspaces con conexiones de punto de conexión de VPC.

El tamaño del grupo de conexiones se configura en el controlador de cliente. Por ejemplo, en base a un tamaño de grupo local de 2 y un punto de conexión de VPC creado a través de 3 zonas de disponibilidad, el controlador establece 6 conexiones para realizar consultas (7 en total, dado que incluye una conexión de control). A través de estas 6 conexiones, puede admitir un máximo de 18 000 consultas CQL por segundo.

Si su aplicación necesita admitir 40 000 consultas CQL por segundo, calcule hacia atrás a partir del número de consultas necesarias para determinar el tamaño del grupo de conexiones requerido. Para admitir 40 000 consultas CQL por segundo, debe configurar el tamaño del grupo local para que sea al menos de 5, lo que admite un mínimo de 45 000 consultas CQL por segundo.

Puedes monitorizar si superas la cuota del número máximo de operaciones por segundo y por conexión utilizando la PerConnectionRequestRateExceeded CloudWatch métrica del espacio de nombres. AWS/Cassandra La métrica PerConnectionRequestRateExceeded muestra el número de solicitudes efectuadas a Amazon Keyspaces que superan la cuota de tasa de solicitudes por conexión.

Los ejemplos de código en este paso muestran cómo calcular y configurar el grupo de conexiones cuando se utilizan puntos de conexión de VPC de interfaz.

Java

Puede configurar el número de conexiones por grupo en el controlador Java. Para ver un ejemplo completo de conexión de un controlador de cliente Java, consulte Uso de un controlador de cliente Java de Cassandra para acceder mediante programación a Amazon Keyspaces.

Al iniciar el controlador de cliente, primero se establece la conexión de control para tareas administrativas, como los cambios de esquema y topología. A continuación se crean las conexiones adicionales.

En el siguiente ejemplo, la configuración del controlador de tamaño del grupo local se especifica como 2. Si el punto final de la VPC se crea en 3 subredes dentro de la VPC, se obtienen 7 entradas CloudWatch para el punto final de la interfaz, como se muestra NewConnections en la siguiente fórmula.

NewConnections = 3 (VPC subnet endpoints created across) * 2 (pool size) + 1 ( control connection)
datastax-java-driver { basic.contact-points = [ "cassandra.us-east-1.amazonaws.com:9142"] advanced.auth-provider{ class = PlainTextAuthProvider username = "ServiceUserName" password = "ServicePassword" } basic.load-balancing-policy { local-datacenter = "us-east-1" slow-replica-avoidance = false } advanced.ssl-engine-factory { class = DefaultSslEngineFactory truststore-path = "./src/main/resources/cassandra_truststore.jks" truststore-password = "my_password" hostname-validation = false } advanced.connection { pool.local.size = 2 } }

Si el número de conexiones activas no coincide con el tamaño de su grupo configurado (agregación a través de subredes) + 1 conexión de control, algo impide que se creen las conexiones.

Node.js

Puede configurar el número de conexiones por grupo en el controlador Node.js. Para ver un ejemplo completo de una conexión del controlador de cliente Node.js, consulte Uso de un controlador de cliente Node.js para Cassandra para acceder mediante programación a Amazon Keyspaces.

En el siguiente ejemplo de código, la configuración del controlador de tamaño del grupo local se especifica como 1. Si el punto final de la VPC se crea en 4 subredes dentro de la VPC, se obtienen 5 entradas CloudWatch para el punto final de la interfaz, como se muestra NewConnections en la siguiente fórmula.

NewConnections = 4 (VPC subnet endpoints created across) * 1 (pool size) + 1 ( control connection)
const cassandra = require('cassandra-driver'); const fs = require('fs'); const types = cassandra.types; const auth = new cassandra.auth.PlainTextAuthProvider('ServiceUserName', 'ServicePassword'); const sslOptions1 = { ca: [ fs.readFileSync('/home/ec2-user/sf-class2-root.crt', 'utf-8')], host: 'cassandra.us-east-1.amazonaws.com', rejectUnauthorized: true }; const client = new cassandra.Client({ contactPoints: ['cassandra.us-east-1.amazonaws.com'], localDataCenter: 'us-east-1', pooling: { coreConnectionsPerHost: { [types.distance.local]: 1 } }, consistency: types.consistencies.localQuorum, queryOptions: { isIdempotent: true }, authProvider: auth, sslOptions: sslOptions1, protocolOptions: { port: 9142 } });