Passaggio 6: (Facoltativo) Procedure consigliate per configurare la dimensione del pool di connessioni per l'applicazione - Amazon Keyspaces (per Apache Cassandra)

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Passaggio 6: (Facoltativo) Procedure consigliate per configurare la dimensione del pool di connessioni per l'applicazione

In questa sezione, descriviamo come determinare la dimensione ideale del pool di connessioni in base ai requisiti di velocità di trasmissione delle query dell'applicazione.

Amazon Keyspaces consente un massimo di 3.000 CQL query al secondo per connessione. TCP Quindi non c'è praticamente alcun limite al numero di connessioni che un driver può stabilire con Amazon Keyspaces. Tuttavia, ti consigliamo di adattare la dimensione del pool di connessioni ai requisiti della tua applicazione e di considerare gli endpoint disponibili quando utilizzi Amazon Keyspaces VPC con connessioni endpoint.

La dimensione del pool di connessioni viene configurata nel driver client. Ad esempio, in base a un pool locale di 2 dimensioni e a un endpoint di VPC interfaccia creato in 3 zone di disponibilità, il driver stabilisce 6 connessioni per l'interrogazione (7 in totale, inclusa una connessione di controllo). Utilizzando queste 6 connessioni, è possibile supportare un massimo di 18.000 CQL query al secondo.

Se l'applicazione deve supportare 40.000 CQL query al secondo, procedi a ritroso partendo dal numero di query necessarie per determinare la dimensione del pool di connessioni richiesta. Per supportare 40.000 CQL query al secondo, è necessario configurare la dimensione del pool locale in modo che sia almeno 5, il che supporta un minimo di 45.000 query al secondo. CQL

Puoi monitorare se superi la quota per il numero massimo di operazioni al secondo, per connessione utilizzando la PerConnectionRequestRateExceeded CloudWatch metrica nel namespace. AWS/Cassandra La PerConnectionRequestRateExceeded metrica mostra il numero di richieste ad Amazon Keyspaces che superano la quota per la frequenza di richieste per connessione.

Gli esempi di codice in questa fase mostrano come stimare e configurare il pool di connessioni quando utilizzi gli endpoint di interfaccia. VPC

Java

È possibile configurare il numero di connessioni per pool nel driver Java. Per un esempio completo di connessione al driver di un client Java, vedereUtilizzo di un driver client Java Cassandra per accedere ad Amazon Keyspaces a livello di programmazione.

All'avvio del driver client, viene stabilita innanzitutto la connessione di controllo per le attività amministrative, ad esempio le modifiche allo schema e alla topologia. Quindi vengono create le connessioni aggiuntive.

Nell'esempio seguente, la configurazione del driver delle dimensioni del pool locale è specificata come 2. Se l'VPCendpoint viene creato su 3 sottoreti all'interno diVPC, ciò comporta 7 NewConnections ingressi CloudWatch per l'endpoint dell'interfaccia, come illustrato nella formula seguente.

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 } }

Se il numero di connessioni attive non corrisponde alla dimensione del pool configurato (aggregazione tra sottoreti) + 1 connessione di controllo, qualcosa impedisce la creazione delle connessioni.

Node.js

È possibile configurare il numero di connessioni per pool nel driver Node.js. Per un esempio completo di connessione al driver client Node.js, vedereUtilizzo di un driver client Cassandra Node.js per accedere ad Amazon Keyspaces a livello di codice.

Per il seguente esempio di codice, la configurazione del driver della dimensione del pool locale è specificata come 1. Se l'VPCendpoint viene creato su 4 sottoreti all'interno diVPC, ne risulteranno 5 NewConnections ingressi CloudWatch per l'endpoint dell'interfaccia, come illustrato nella formula seguente.

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 } });