sql >> Databasteknik >  >> RDS >> MariaDB

Migrerar från Maxscale till ProxySQL Load Balancer

En databaslastbalanserare, eller proxy, är en mellanprogramtjänst mellan applikationslager och databaslager. Applikationen ansluter till databasens proxy, och proxyn vidarebefordrar anslutningen till databasen. Det finns några fördelar med att använda en databasproxy, till exempel:dela läs- och skrivfrågor, cache-förfrågningar, distribuera frågor baserade på någon routingalgoritm, sökningar skriver om och skala din skrivskyddade arbetsbelastning. En databasproxy abstraherar också databastopologin (och eventuella ändringar) för applikationslagret, så applikationer behöver bara ansluta till en enda slutpunkt.

Det finns olika databasproxy där ute, från kommersiella till öppen källkodsalternativ, t.ex. HAProxy, Nginx, ProxySQL, Maxscale, etc.  I den här bloggen kommer vi att diskutera hur man migrerar databasproxy från Maxscale till ProxySQL med hjälp av ClusterControl.

Aktuell arkitektur med Maxscale

Tänk på en mycket tillgänglig databasarkitektur som består av 3 noder i ett Galera-kluster, och ovanpå det, 2 Maxscale- och Keepalved-tjänster för hög tillgänglighet av databasproxyn. Galera Cluster är "nästan" synkrona replikeringar, det använder en certifiering baserad för replikering som säkerställer att din data kommer att vara tillgänglig på alla noder. Den aktuella arkitekturen visas nedan:

Maxscale är en databasproxy från MariaDB Corporation, som fungerar som mellanprogram mellan applikationer och databaser.

Här är topologiarkitekturen för Galera Cluster- och Maxscale-lastbalanserare i ClusterControl. Du kan distribuera allt detta direkt från ClusterControl, eller importera befintliga databaser och proxynoder till ClusterControl. Du kan se din databastopologi på fliken Topologi.

Distribuera ProxySQL &Keepalived

ProxySQL är en annan databasproxy från ProxySQL, som tillhandahåller vissa funktioner som t.ex. frågecache, omskrivningar av frågor, delade frågor för skrivning och läsning baserat på frågemönster. För att distribuera ProxySQL i ClusterControl måste du gå till Hantera -> Lastbalanserare i ditt kluster. ClusterControl stöder några olika databasproxyer; HAProxy, ProxySQL, MaxScale.

Välj ProxySQL, så visas sidan nedan:

Vi måste välja serveradressen där ProxySQL ska installeras. Vi kan antingen installera på de befintliga noderna eller om du vill ha en dedikerad nod för ProxySQL, skriv bara in IP-adressen i listan. Fyll i lösenordet för administrations- och övervakningsanvändare, lägg till applikationsanvändaren i ProxySQL eller så kan du konfigurera senare. Aktivera databasservrarna att inkluderas i lastbalanseringsuppsättningen i ProxySQL. Klicka på knappen Distribuera ProxySQL. Vi måste ha minst 2 ProxySQL för hög tillgänglighet.

Om vi ​​glömmer att lägga till en databasanvändare i ProxySQL under installationen kan vi konfigurera den på ProxySQL-användarfliken enligt nedan:

ProxySQL kräver att databasanvändare också är konfigurerade i ProxySQL.

Efter att ProxySQL har distribuerats fortsätter vi att konfigurera Keepalved på varje ProxySQL-värd. Keepalive-tjänsterna kommer att fungera som master/backup-roller över ProxySQL-instanserna. Keepalved-tjänsten använder VIP (virtuell IP-adress), så applikationen ansluter till en virtuell IP-adress på huvudrollen och vidarebefordrar anslutningen till den lokala ProxySQL. Om tjänsterna misslyckas flyttas VIP automatiskt till en annan nod.

Isättning av keepalived i ClusterControl görs på samma sida som databasproxyn, du behöver bara välja Keepalved-fliken. Välj typen av belastningsutjämnare, som är ProxySQL, och lägg sedan till den nuvarande ProxySQL för Keepalived1 och Keepalived2. Fyll i den virtuella IP-adressen och nätverksgränssnittet. Och slutligen, klicka på knappen Distribuera Keepalived.

Att köra två ProxySQL med Keepalived-tjänster ger oss ett proxylager med hög tillgänglighet. I ClusterControl visas det i nedanstående topologivy:

Växla

Omställningen av trafiken är verkligen enkel, behöver bara ändra ip-adressanslutningen i applikationslagret för att använda virtuell IP-adress för ProxySQL och sedan övervaka trafiken genom ProxySQL.

 


  1. Hur ställer man in timern för att anropa en funktion var n:e minut?

  2. Hur man installerar MySQL Workbench på Windows

  3. Hur kan jag starta PostgreSQL på Windows?

  4. Formatmodeller som stöds för datumfunktionerna ROUND() och TRUNC() i Oracle