Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
SI APPLICA A:
Cassandra
Importante
Si sta cercando una soluzione di database per scenari su larga scala con un contratto di servizio di disponibilità 99.999%, scalabilità automatica immediata e failover automatico in più aree? Prendere in considerazione Azure Cosmos DB per NoSQL.
Si sta cercando di eseguire la migrazione di un'applicazione Apache Cassandra esistente? Prendere in considerazione Azure Istanza gestita per Apache Cassandra.
Azure Cosmos DB offre un'estensione driver per DataStax Java Driver 3 e 4. Queste estensioni del driver offrono agli sviluppatori funzionalità diverse per migliorare le prestazioni e l'affidabilità di un'applicazione e ottimizzare i carichi di lavoro in Azure Cosmos DB.
In questo articolo verrà dedicata particolare attenzione a Java versione 4 di DataStax Java Driver. L'estensione creata può essere implementata senza modifiche al codice, ma con un aggiornamento ai file pom.xml e application.conf. In questo articolo sono illustrati i valori predefiniti per tutte le opzioni di configurazione impostate dalle estensioni di Azure Cosmos DB for Apache Cassandra e i casi in cui è possibile eseguirne l'override.
Impostazioni consigliate per Java SDK
Le impostazioni seguenti sono specifiche per Java versione 4 del driver client Cassandra.
Authentication
Per impostazione predefinita, viene usato il parametro PlainTextAuthProvider. Questo perché Azure Cosmos DB for Apache Cassandra richiede l'autenticazione e usa l'autenticazione in testo normale.
auth-provider {
class = PlainTextAuthProvider
}
Connessione
Azure Cosmos DB bilancia il carico delle richieste rispetto a un numero elevato di nodi back-end. Le impostazioni predefinite nell'estensione per le dimensioni dei nodi locali e remoti sono adatte agli ambienti di sviluppo, di test e di produzione o gestione temporanea con volumi ridotti. Negli ambienti con volumi elevati è consigliabile aumentare questi valori a 50 o 100.
connection {
pool {
local {
size = 10
}
remote {
size = 10
}
}
}
Mappa dei token
La mappa dei token di sessione viene usata internamente dal driver per inviare richieste al coordinatore ottimale quando è abilitato il routing compatibile con token. Questa è un'ottimizzazione efficace quando si è connessi a un'istanza di Apache Cassandra. È invece irrilevante e genera messaggi di errore spuri quando si è connessi a un endpoint di Azure Cosmos DB for Apache Cassandra. È quindi consigliabile disabilitare la mappa dei token di sessione quando si è connessi a un'istanza di Azure Cosmos DB for Apache Cassandra.
metadata {
token-map {
enabled = false
}
}
Criteri di riconnessione
È consigliabile usare il parametro ConstantReconnectionPolicy per l'API per Cassandra, con un base-delay di 2 secondi.
reconnection-policy {
class = ConstantReconnectionPolicy
base-delay = 2 second
}
Politica di ripetizione dei tentativi
La politica di ripetizione predefinita nel driver Java non gestisce l'eccezione OverLoadedException. Per l'API per Cassandra sono stati creati criteri personalizzati in grado di gestire questa eccezione.
I parametri per i criteri di ripetizione dei tentativi sono definiti all'interno del file reference.conf dell'estensione di Azure Cosmos DB.
retry-policy {
class = com.azure.cosmos.cassandra.CosmosRetryPolicy
max-retries = 5
fixed-backoff-time = 5000
growing-backoff-time = 1000
}
Criteri di bilanciamento e aree preferite
I criteri di bilanciamento del carico predefiniti nel driver v4 limitano il failover a livello di applicazione e specificano un singolo data center locale per CqlSession, l'oggetto richiesto dai criteri. Questa caratteristica offre un'esperienza ottimale per la comunicazione con le istanze di Azure Cosmos DB Cassandra. Oltre a impostare i criteri di bilanciamento del carico, è possibile configurare il failover per le regioni specificate in una distribuzione con scritture in più aree geografiche, se ci sono interruzioni regionali usando il parametro preferred-regions.
load-balancing-policy {
multi-region-writes=false
preferred-regions=["Australia East","UK West"]
}
Connessione SSL e timeout
Per impostazione predefinita, viene usato il parametro DefaultsslEngineFactory. Ciò è dovuto al fatto che l'API Azure Cosmos DB for Apache Cassandra richiede una connessione SSL:
ssl-engine-factory {
class = DefaultSslEngineFactory
}
Un timeout della richiesta di 60 secondi offre un'esperienza migliore rispetto al valore predefinito di 2 secondi. Aumentare o diminuire questo valore in base al carico di lavoro e al provisioning del throughput di Azure Cosmos DB for Apache Cassandra. Più throughput fornisci, più basso può essere il valore che puoi impostare.
request {
timeout = "60 seconds"
}