I pool di lettura di Cloud SQL supportano il bilanciamento del carico per i workload di lettura di grandi dimensioni.
Che cosa sono i pool di lettura?
Un pool di lettura è una raccolta di istanze di replica di lettura utilizzate per distribuire i workload di lettura di grandi dimensioni. Questi workload possono essere reindirizzati dall'istanza principale al pool di lettura per ridurre il carico sull'istanza principale.
Ogni replica di lettura nel pool di lettura è chiamata nodo del pool di lettura.
Puoi scalare il pool di lettura in diversi modi:
- Scale in o scale out: scala la capacità di bilanciamento del carico in orizzontale modificando il numero di nodi del pool di lettura nel pool di lettura. Ogni pool di lettura supporta da 1 a 7 nodi del pool di lettura.
- Fai lo scale up o lo scale down: scala verticalmente la capacità di bilanciamento del carico modificando il tipo di macchina associato a un nodo del pool di lettura. Una volta definita, la configurazione viene applicata in modo uniforme a ogni nodo del pool di lettura.
Quando modifichi le impostazioni dei nodi del pool di lettura, come lo spazio di archiviazione, la connettività o i flag di configurazione del database, le modifiche vengono applicate automaticamente in modo uniforme a ogni nodo del pool di lettura.
Accedi a un pool di lettura tramite un singolo endpoint di lettura
Il pool di lettura è accessibile tramite un singolo endpoint di lettura con un indirizzo IP immutabile. Le connessioni effettuate tramite l'endpoint vengono reindirizzate automaticamente a uno dei nodi del pool di lettura. Quando vuoi fare lo scale in o lo scale out del pool di lettura, le applicazioni che erano precedentemente connesse a questo singolo endpoint di lettura non devono essere riconfigurate, anche se puoi creare nuovi nodi del pool di lettura nel pool di lettura o eliminare quelli precedenti.
Anche ogni nodo del pool di lettura ha il proprio indirizzo IP. Sebbene non sia consigliato come approccio efficiente per accedere ai dati, puoi utilizzare questi indirizzi IP per risolvere i problemi relativi alle prestazioni dei singoli nodi del pool di lettura.
Per saperne di più su come recuperare le informazioni di connessione per il pool di lettura o i nodi del pool di lettura (indirizzi IP o una stringa di connessione), consulta Visualizza le informazioni sul pool di lettura.
Replica
La replica del pool di lettura di Cloud SQL viene implementata utilizzando i gruppi di disponibilità di scalabilità di lettura di SQL Server.
Per saperne di più, consulta Informazioni sulla replica.
Scalabilità automatica del pool di lettura
Puoi configurare il pool di lettura in modo che venga ridimensionato automaticamente per adattarsi alle mutevoli esigenze del workload della tua applicazione. Per saperne di più, consulta Scalabilità automatica del pool di lettura.
Caratteristiche del pool di lettura
Si applicano le seguenti caratteristiche:
- I pool di lettura non hanno un'API univoca supportata da Cloud SQL. Qualsiasi operazione per creare, configurare o visualizzare un pool di lettura viene eseguita utilizzando l'API dell'istanza Cloud SQL.
Ad esempio, quando utilizzi
gcloud CLIper creare un pool di lettura, utilizzi il comandogcloud sql instances create. Analogamente, per controllare il numero di nodi del pool di lettura configurati in un pool di lettura, utilizza il comandogcloud sql instances describe. - Un pool di lettura con due o più nodi è coperto dall'accordo sul livello del servizio (SLA).
- I nodi del pool di lettura si trovano sempre nella stessa regione, come specificato dall'utente. Google Cloud alterna la residenza dei nodi del pool di lettura tra tutte le zone della regione.
- Un'istanza principale può avere uno o più pool di lettura.
- Le seguenti operazioni comportano tempi di inattività inferiori al secondo:
- Scale out o scale in (aggiunta o rimozione di nodi del pool di lettura).
- Scale up o scale down (modifica del tipo di macchina dei nodi nel pool).
- Conversione di una replica di lettura a livello di zona esistente in un pool di lettura.
- Un pool di lettura viene sottoposto a manutenzione prima dell'istanza principale, in modo simile alle repliche di lettura. Come le repliche di lettura, i pool di lettura vengono sottoposti a manutenzione durante il periodo di manutenzione dell'istanza principale.
- Ogni nodo del pool di lettura ha le stesse metriche disponibili di una replica di lettura Cloud SQL.
- Quando utilizzi
gcloudo la console Google Cloud per descrivere i dettagli di un progetto, viene elencato il nome del pool di lettura, non i nomi dei singoli nodi del pool di lettura.
Numero massimo di nodi del pool di lettura per istanza principale
Puoi assegnare un massimo di sette repliche di lettura per istanza principale.
Il numero combinato di repliche di lettura e nodi del pool di lettura che eseguono la replica dalla stessa istanza principale non può superare sette.
Come calcolare il numero massimo di nodi del pool di lettura per istanza principale
Concettualmente, puoi pensare a una replica di lettura come a un singolo nodo del pool di lettura.
Puoi convertire una replica di lettura in un pool di lettura e poi modificare il numero di nodi del pool di lettura in un numero maggiore di uno.
Puoi quindi assegnare la scalabilità automatica al pool di lettura in modo che il numero di nodi del pool di lettura venga regolato dinamicamente verso l'alto o verso il basso in base alle esigenze del workload.
Quando la scalabilità automatica è abilitata in un pool di lettura, devi indicare un numero massimo di nodi valido per il pool di lettura. Questo numero, combinato con il numero di repliche di lettura esistenti che eseguono la replica dalla stessa istanza principale o di nodi del pool di lettura appartenenti ad altri pool di lettura che eseguono la replica dalla stessa istanza principale, non può superare sette.
Ad esempio, se un'istanza principale ha due repliche di lettura e un pool di lettura con due nodi del pool di lettura e un secondo pool di lettura con scalabilità automatica abilitata, il numero massimo di nodi del pool di lettura per il secondo pool di lettura non può essere un valore superiore a tre.
Per saperne di più, consulta Scalabilità automatica dei pool di lettura.
Limitazioni
Si applicano le seguenti limitazioni:
- I pool di lettura sono disponibili solo per le istanze della versione Cloud SQL Enterprise Plus nella nuova architettura di rete. Anche l'istanza principale associata a un pool di lettura deve essere un'istanza Cloud SQL Enterprise Plus.
- Puoi assegnare un massimo di 7 repliche di lettura per istanza principale. Per saperne di più, consulta Numero massimo di nodi.
- Il disaster recovery avanzato non è compatibile con i pool di lettura. Le istanze principali non possono utilizzare sia i pool di lettura sia le repliche a cascata.
- Il traffico viene gestito dai nodi del pool di lettura in base allo stato del database, ma indipendentemente dall'entità del ritardo di replica sul nodo del pool di lettura. Il traffico può essere gestito da un nodo del pool di lettura in ritardo anche se è disponibile un altro nodo del pool di lettura che non è in ritardo. Un database è considerato integro se il processo del database è attivo e può rispondere alle query, ma non esiste alcun requisito sulla data di aggiornamento dei dati forniti.
- Non è garantito che una singola sessione logica si connetta a più nodi del pool di lettura.
- I seguenti tipi di aggiornamenti non sono supportati:
- Anche se i pool di lettura continuano a ricevere gli aggiornamenti di manutenzione di Cloud SQL, non puoi aggiornare il pool di lettura o l'istanza principale associata a una nuova versione principale del database.
- Avvio o arresto dei nodi del pool di lettura.
- Oltre alle operazioni non supportate sulle repliche di lettura, le seguenti operazioni non sono supportate sui pool di lettura:
- Abilita e disabilita la replica
- Active Directory gestito dal cliente
- Managed Microsoft AD
- Promuovi replica
- Riavvia
- Importa
- Esporta
- Failover
- Ricripta
- Clona
- I certificati SSL/TLS con CA condivisa o CA gestita dal cliente non possono essere utilizzati con un pool di lettura.
- Un pool di lettura non può essere replicato in un'altra istanza, ad esempio una replica a cascata o un altro pool di lettura.
- Un pool di lettura deve eseguire la replica direttamente da un'istanza principale. Non può essere una replica a cascata.
- Quando crei o scali un pool di lettura, devi attendere il completamento delle operazioni precedenti di creazione, fare lo scale in o scale out del pool associate al pool di lettura. Questa limitazione si applica a qualsiasi altro pool di lettura associato alla stessa istanza principale. Se vuoi scalare più pool di lettura associati alla stessa istanza principale, devi attendere il completamento delle operazioni di scalabilità associate al primo pool di lettura prima di iniziare a scalare il pool di lettura successivo. Se invii richieste in parallelo, potresti ricevere il seguente errore:
Operation failed because another operation was already in progress.. - Solo una replica a livello di zona situata nella stessa regione dell'istanza principale può essere convertita per l'utilizzo in un pool di lettura.
- I nodi del pool di lettura potrebbero presentare livelli variabili di ritardo della replica, il che può comportare letture incoerenti. Se la tua applicazione richiede un'elevata coerenza di lettura, ti consigliamo di scalare verticalmente una singola replica di lettura anziché utilizzare un pool di lettura.
- Cloud SQL ripara automaticamente i nodi del pool di lettura nelle seguenti condizioni:
- Quando l'istanza non è attiva.
- Quando la replica viene interrotta.
In questi scenari, se crei accessi aggiuntivi dall'istanza principale, non potrai accedere utilizzando questi accessi dopo la ricreazione del nodo del pool di lettura. Assicurati che i dati di accesso utilizzati per l'endpoint di lettura siano disponibili dall'istanza principale.
- Microsoft non supporta la replica degli oggetti server.
Tutti gli oggetti a livello di server creati su una replica di lettura devono essere creati e gestiti anche nell'istanza principale. Questi oggetti non vengono replicati automaticamente.
Questo comportamento si applica ai seguenti scenari, anche se non si tratta di un elenco esaustivo:
- Riparazione di un pool di lettura.
- Conversione di una replica di lettura in un pool di lettura.
- Gli oggetti a livello di server, come gli accessi, diventano inaccessibili.
- Se crei un accesso che esiste nella replica di lettura originale, ma non nell'istanza principale, l'accesso non viene replicato nel nuovo nodo del pool di lettura.
- Conversione di un pool di lettura in una replica di lettura.
- Se crei un accesso in un pool di lettura e non nell'istanza principale, e in seguito disabiliti il pool di lettura, l'accesso non esiste più.
Ecco alcuni esempi di oggetti a livello di server non replicati:
- Accessi.
- Configurazione del server collegato.
- File di audit del database creati da SQL Server Audit.
- Sessioni XEvents e relative impostazioni di configurazione.
Per saperne di più, consulta la documentazione di Microsoft.
- Il certificato di crittografia trasparente dei dati (TDE) è bloccato per le operazioni di importazione ed esportazione.
- Devi sempre importare ed esportare i certificati TDE dall'istanza principale. I certificati TDE verranno replicati automaticamente in tutte le repliche di lettura nel pool di lettura, indipendentemente dal tipo di replica.
- Le operazioni di importazione ed esportazione TDE non sono supportate. Importa sempre il certificato TDE dall'istanza principale.