sql >> Databáze >  >> RDS >> MariaDB

Migrace z Maxscale na ProxySQL Load Balancer

Vyrovnávání zatížení databáze neboli proxy je služba middlewaru mezi aplikační vrstvou a databázovou vrstvou. Aplikace se připojí k databázi proxy a proxy předá připojení k databázi. Použití databázového proxy má některé výhody, například:rozdělení dotazů pro čtení a zápis, dotazy do mezipaměti, distribuce dotazů na základě nějakého směrovacího algoritmu, přepis dotazů a škálování vaší pracovní zátěže pouze pro čtení. Proxy databáze také abstrahuje topologii databáze (a jakékoli změny) pro aplikační vrstvu, takže aplikace se potřebují připojit pouze k jednomu koncovému bodu.

Existují různé databázové proxy, od komerčních po open source možnosti, např. HAProxy, Nginx, ProxySQL, Maxscale atd.  V tomto blogu probereme, jak migrovat databázové proxy z Maxscale na ProxySQL pomocí ClusterControl.

Aktuální architektura s Maxscale

Zvažte vysoce dostupnou databázovou architekturu, která se skládá ze 3 uzlů v Galera Cluster a navíc 2 služeb Maxscale a Keepalived pro vysokou dostupnost databázového proxy. Galera Cluster je „virtuálně“ synchronní replikace, používá certifikaci založenou na replikaci, která zajišťuje, že vaše data budou dostupná na všech uzlech. Aktuální architektura je zobrazena níže:

Maxscale je databázová proxy od MariaDB Corporation, která funguje jako middleware mezi aplikacemi a databáze.

Zde je topologická architektura pro Galera Cluster a Maxscale load balancery v ClusterControl. To vše můžete nasadit přímo z ClusterControl nebo importovat existující databáze a proxy uzly do ClusterControl. Topologii databáze můžete vidět na kartě Topologie.

Nasazení ProxySQL a Keepalived

ProxySQL je další databázová proxy z ProxySQL, která poskytuje některé funkce, jako je ukládání dotazů do mezipaměti, přepisování dotazů, rozdělení dotazů pro zápis a čtení na základě vzoru dotazů. Chcete-li nasadit ProxySQL v ClusterControl, musíte ve svém clusteru přejít na Spravovat -> Load Balancers. ClusterControl podporuje několik různých databázových proxy; HAProxy, ProxySQL, MaxScale.

Vyberte ProxySQL a zobrazí se stránka níže:

Musíme vybrat adresu serveru, kam se nainstaluje ProxySQL. Můžeme buď nainstalovat na stávající uzly, nebo pokud chcete mít vyhrazený uzel pro ProxySQL, stačí zadat IP adresu do seznamu. Vyplňte heslo pro uživatele administrace a monitorování, přidejte uživatele aplikace do ProxySQL nebo jej můžete nakonfigurovat později. Povolte, aby databázové servery byly zahrnuty do sady vyrovnávání zátěže v ProxySQL. Klikněte na tlačítko Deploy ProxySQL. Pro vysokou dostupnost potřebujeme mít alespoň 2 ProxySQL.

Pokud během nastavování zapomeneme přidat databázového uživatele do ProxySQL, můžeme jej nakonfigurovat na kartě ProxySQL user, jak je uvedeno níže:

ProxySQL vyžaduje konfiguraci uživatelů databáze také v ProxySQL.

Po nasazení ProxySQL pokračujeme v konfiguraci Keepalived na každém hostiteli ProxySQL. Keepalived služby budou fungovat jako hlavní/záložní role napříč instancemi ProxySQL. Služba Keepalived používá VIP (virtuální IP adresu), takže se aplikace připojí k virtuální IP adrese v roli master a předá spojení na lokální ProxySQL. Pokud služby selžou, VIP se automaticky přesune na jiný uzel.

Nasazení keepalived v ClusterControl se provádí na stejné stránce jako proxy databáze, stačí vybrat kartu Keepalived. Vyberte typ nástroje pro vyrovnávání zatížení, což je ProxySQL, a poté přidejte aktuální ProxySQL pro Keepalived1 a Keepalived2. Vyplňte virtuální IP adresu a síťové rozhraní. A nakonec klikněte na tlačítko Deploy Keepalived.

Spuštění dvou ProxySQL se službami Keepalived nám poskytuje vrstvu proxy s vysokou dostupností. V ClusterControl je zobrazen v níže uvedeném zobrazení topologie:

Přepnutí

Přepínání provozu je opravdu přímočaré, stačí změnit připojení IP adresy v aplikační vrstvě tak, aby bylo možné používat virtuální IP adresu pro ProxySQL, a poté sledovat provoz přes ProxySQL.

 


  1. Anatomie uváznutí SQL Serveru a nejlepší způsoby, jak se jim vyhnout

  2. PostgreSQL Meltdown Benchmarks

  3. Přihlašovací postup v R12.2 a základní odstraňování problémů

  4. SQLite - Vytvořte vztah