Desidero sapere in che modo Amazon Aurora per MySQL e PostgreSQL distribuiscono il carico di lavoro tra i nodi di lettura.
Risoluzione
Usa l'endpoint di lettura per connetterti ai nodi di lettura in un cluster Amazon Aurora.
Per verificare la distribuzione della rotazione delle connessioni, esegui un comando shell. Per vedere come Aurora tenta di bilanciare il carico delle connessioni con l'endpoint di lettura, esegui un comando simile all'esempio seguente:
while sleep 5; do dig xxx-cluster.cluster-ro-xxxxxx.us-east1.rds.amazonaws.com|grep CNAME; done
Ogni volta che risolvi l'endpoint di lettura, otterrai un indirizzo IP dell'istanza a cui connetterti. Questo indirizzo IP viene scelto in base alla distribuzione della rotazione.
La connessione del database a ciascuna replica di lettura potrebbe non essere distribuita uniformemente negli scenari seguenti:
- Un client memorizza nella cache le informazioni DNS. La distribuzione non uniforme si verifica quando il client utilizza le impostazioni di connessione memorizzate nella cache per connettersi alla stessa replica Aurora. La memorizzazione nella cache DNS può avvenire ovunque, incluso il livello di rete, il sistema operativo o il container dell'applicazione.
- Se l'istanza database esegue il failover, l'endpoint di lettura potrebbe reindirizzare le connessioni. L'endpoint di lettura potrebbe indirizzare temporaneamente le connessioni all'istanza database primaria per il cluster di database. Questo reindirizzamento avviene quando una replica Aurora viene promossa all'istanza database primaria.
- La replica di lettura non è disponibile o non supera un controllo di integrità.
- L'applicazione è scritta in Java e non disattivi o modifichi la memorizzazione nella cache TTL. Se non disattivi o modifichi la memorizzazione nella cache TTL, le macchine virtuali Java (JVM) potrebbero memorizzare nella cache DNS a tempo indeterminato. Per ulteriori informazioni, consulta la sezione Impostazione di JVM TTL per le ricerche del nome DNS.
- Quando le connessioni avvengono contemporaneamente, vengono inviate allo stesso endpoint di lettura.
Quando gestisci la distribuzione del carico di lavoro, utilizza endpoint personalizzati per una maggiore flessibilità. Ad esempio, puoi utilizzare endpoint personalizzati se utilizzi istanze database di dimensioni diverse all'interno del cluster.
Informazioni correlate
Gestione delle connessioni Amazon Aurora