MariaDB
 sql >> Database >  >> RDS >> MariaDB

Migrazione da Maxscale a ProxySQL Load Balancer

Un servizio di bilanciamento del carico del database, o proxy, è un servizio middleware tra il livello dell'applicazione e il livello del database. L'applicazione si connette al proxy del database e il proxy inoltra la connessione al database. L'utilizzo di un proxy di database presenta alcuni vantaggi, ad esempio:dividere le query di lettura e scrittura, memorizzare nella cache le query, distribuire le query in base a un algoritmo di routing, riscrivere le query e ridimensionare il carico di lavoro di sola lettura. Un proxy di database astrae anche la topologia del database (ed eventuali modifiche) per il livello dell'applicazione, quindi le applicazioni devono connettersi solo a un singolo endpoint.

Ci sono vari proxy di database là fuori, da opzioni commerciali a open source, ad esempio HAProxy, Nginx, ProxySQL, Maxscale, ecc. In questo blog discuteremo come migrare proxy di database da Maxscale a ProxySQL con l'aiuto di ClusterControl.

Architettura attuale con Maxscale

Considera un'architettura di database altamente disponibile composta da 3 nodi in un cluster Galera e, in aggiunta, 2 servizi Maxscale e Keepalived per un'elevata disponibilità del proxy del database. Galera Cluster è repliche "virtualmente" sincrone, utilizza una certificazione basata per la replica che garantisce che i tuoi dati siano disponibili su tutti i nodi. L'architettura attuale è mostrata di seguito:

Maxscale è un proxy di database di MariaDB Corporation, che funge da middleware tra le applicazioni e banche dati.

Ecco l'architettura della topologia per i sistemi di bilanciamento del carico Galera Cluster e Maxscale in ClusterControl. È possibile distribuire tutto ciò direttamente da ClusterControl o importare database e nodi proxy esistenti in ClusterControl. Puoi vedere la topologia del database nella scheda Topologia.

Distribuisci ProxySQL e Keepalived

ProxySQL è un altro proxy di database di ProxySQL, che fornisce alcune funzionalità come la memorizzazione nella cache delle query, la riscrittura delle query, le query suddivise per la scrittura e la lettura in base al modello delle query. Per distribuire ProxySQL in ClusterControl, devi andare su Gestisci -> Bilanciatori di carico nel tuo cluster. ClusterControl supporta alcuni proxy di database diversi; HAProxy, ProxySQL, MaxScale.

Scegli ProxySQL e mostrerà la pagina seguente:

Dobbiamo scegliere l'indirizzo del server in cui verrà installato ProxySQL. Possiamo installare sui nodi esistenti o se vuoi avere un nodo dedicato per ProxySQL, basta digitare l'indirizzo IP nell'elenco. Inserisci la password per gli utenti di amministrazione e monitoraggio, aggiungi l'utente dell'applicazione in ProxySQL o puoi configurarlo in un secondo momento. Abilitare l'inclusione dei server di database nel set di bilanciamento del carico in ProxySQL. Fare clic sul pulsante Distribuisci proxySQL. Abbiamo bisogno di almeno 2 ProxySQL per la disponibilità elevata.

Se dimentichiamo di aggiungere un utente del database in ProxySQL durante l'installazione, possiamo configurarlo nella scheda utente ProxySQL come mostrato di seguito:

ProxySQL richiede che anche gli utenti del database siano configurati in ProxySQL.

Dopo aver distribuito ProxySQL, continuiamo a configurare Keepalived su ogni host ProxySQL. I servizi Keepalived agiranno come ruoli master/backup nelle istanze ProxySQL. Il servizio Keepalived utilizza VIP (Indirizzo IP virtuale), quindi l'applicazione si connetterà a un indirizzo IP virtuale nel ruolo principale e inoltrerà la connessione al ProxySQL locale. Se i servizi falliscono, il VIP viene automaticamente spostato su un altro nodo.

La distribuzione di keepalived in ClusterControl viene eseguita sulla stessa pagina del proxy del database, è sufficiente scegliere la scheda Keepalived. Scegli il tipo di bilanciamento del carico, che è ProxySQL, quindi aggiungi il ProxySQL corrente per Keepalived1 e Keepalived2. Riempi l'indirizzo IP virtuale e l'interfaccia di rete. Infine, fai clic sul pulsante Distribuisci Keepalived.

L'esecuzione di due ProxySQL con i servizi Keepalived ci offre un livello proxy ad alta disponibilità. In ClusterControl, viene mostrato nella vista topologica seguente:

Commutazione

Il passaggio del traffico è davvero semplice, basta modificare la connessione dell'indirizzo IP nel livello dell'applicazione per utilizzare l'indirizzo IP virtuale per ProxySQL e quindi monitorare il traffico tramite ProxySQL.