Abo
  • Services:
Anzeige
Maxacale 1.0 GA von MariaDB veröffentlicht
Maxacale 1.0 GA von MariaDB veröffentlicht (Bild: MariaDB)

Installation und Konfiguration

Die Installation von Maxscale selbst ist schnell erledigt. MariaDB stellt fertige Pakete für diverse Linux-Distributionen bereit. Da wir bei Syseleven Gentoo als primäre Distribution einsetzen, haben wir ein Ebuild für Maxscale geschrieben, das bei Github zum Download bereitsteht. Für einen ersten Test haben wir einen MariaDB Galera Cluster verwendet.

Anzeige

Die Konfiguration des Maxscale-Proxys besteht ganz grob aus zwei Teilen: den sogenannten Services und den dazugehörigen Listenern. Im Listener wird definiert, wie Maxscale Anfragen annimmt und an welchen Dienst (Service) diese weitergereicht werden. Im Service wird dann festgelegt, auf welche Backend-Server die Anfragen in welcher Art und Weise weitergereicht werden sollen.

Beispiel:

[GaleraSplitRouter]
type=service
router=readconnroute
router_options=synced
servers=srv1,srv2,srv3
user=maxscale
passwd=maxpass

Der dazugehörige Listener sieht so aus:

[GaleraSplitListener]
type=listener
service=GaleraSplitRouter
protocol=MySQLClient
address=192.0.0.1
port=3306

Nach dem Start von Maxscale lauscht Maxscale nun also auf 192.0.0.1:3306 und reicht Querys an die Server srv1, srv2 und srv3 weiter. Auf der Kommandozeile (CLI) sieht das folgendermaßen aus:

MaxScale> show servers
Server 0xa41e40 (srv1)
        Server:                         192.168.122.200
        Status:                         Slave, Synced, Running
        Protocol:                       MySQLBackend
        Port:                           3306
        Server Version:                 10.0.14-MariaDB-wsrep
        Node Id:                        2
        Master Id:                      -1
        Repl Depth:                     0
        Number of connections:          0
        Current no. of conns:           0
        Current no. of operations:      0
Server 0xa41d30 (srv2)
        Server:                         192.168.122.201
        Status:                         Master, Synced, Running
        Protocol:                       MySQLBackend
        Port:                           3306
        Server Version:                 10.0.14-MariaDB-wsrep
        Node Id:                        0
        Master Id:                      -1
        Repl Depth:                     0
        Number of connections:          1
        Current no. of conns:           1
        Current no. of operations:      0
Server 0xa41c20 (srv3)
        Server:                         192.168.122.202
        Status:                         Slave, Synced, Running
        Protocol:                       MySQLBackend
        Port:                           3306
        Server Version:                 10.0.14-MariaDB-wsrep
        Node Id:                        1
        Master Id:                      -1
        Repl Depth:                     0
        Number of connections:          1
        Current no. of conns:           1
        Current no. of operations:      0
MaxScale>

Die Basisfunktionalität ist also hergestellt. Im Maxscale-CLI können wir nun Performance-Werte abrufen oder auch Backend-Server in den Maintenance-Modus versetzen:

MaxScale> show eventstats

Event statistics.
Maximum queue time:               000ms
Maximum execution time:           100ms
Maximum event queue length:         2
Current event queue length:         1

               |    Number of events
Duration       | Queued     | Executed
---------------+------------+-----------
 < 100ms       | 4464       | 4460      
  100 -  200ms | 0          | 3         
  200 -  300ms | 0          | 0         
  300 -  400ms | 0          | 0

MaxScale> set server srv1 maintenance
MaxScale> show server srv1
Server 0xa41e40 (srv1)
        Server:                         192.168.122.200
        Status:                         Maintenance, Slave, Synced, Running
        Protocol:                       MySQLBackend
        Port:                           3306
        Server Version:                 10.0.14-MariaDB-wsrep
        Node Id:                        2
        Master Id:                      -1
        Repl Depth:                     0
        Number of connections:          0
        Current no. of conns:           0
        Current no. of operations:      0
MaxScale>

Filter

Wie eingangs schon erwähnt, lassen sich Querys anhand von Filtern auf verschiedene Backend-Server verteilen, je nach Art der Query. So ist es beispielsweise möglich, MariaDB Galera Cluster und Standard-MySQL-Server miteinander zu mischen. Besonders interessant ist der sogenannte Readwrite-Splitrouter, da er auf den Einsatz mit einem Master-Slave-Setup abzielt. Er lässt sich wie folgt mit einem typischen Master-Slave-Setup einrichten:

[RW Split Router]
type=service
router=readwritesplit
servers=server1,server2
user=maxuser
passwd=maxpass
max_slave_connections=100%
max_slave_replication_lag=21

[RW Split Listener]
type=listener
service=RW Split Router
protocol=MySQLClient
port=3306
address=192.0.0.1

In der Applikation gibt man nun nur 192.0.0.1 als Datenbank-Host an, den Rest erledigt Maxscale. Konkret bedeutet das: Querys, die nur lesend auf Daten zugreifen, werden auf den Slave-Server geleitet. Querys, die Daten schreiben oder verändern, landen auf dem Master-Server. Werden Daten sehr viel häufiger gelesen als geschrieben, wie es bei Webanwendungen üblicherweise der Fall ist, lässt sich das Setup leicht um weitere Slave-Server ergänzen.

MaxScale> show service "RW Split Router"
Service 0x1f51210
	Service:				RW Split Router
	Router: 				readwritesplit (0x7f0855427420)
	State: 					Started
	Number of router sessions:           	11
	Current no. of router sessions:      	0
	Number of queries forwarded:          	335
	Number of queries forwarded to master:	123
	Number of queries forwarded to slave: 	212
	Number of queries forwarded to all:   	80
	Started:				Mon Jan 19 14:38:53 2015
	Root user access:			Disabled
	Backend databases
		192.168.122.151:3306  Protocol: MySQLBackend
		192.168.122.150:3306  Protocol: MySQLBackend
	Users data:        			0x7f0840006350
	Total connections:			12
	Currently connected:			1
MaxScale>

Welche Querys Maxscale als schreibend oder lesend kategorisiert, ist im Read-Write-Splitting-Tutorial von MariaDB dokumentiert. Kurz zusammengefasst werden folgende Querys an den Master geschickt:

  • Write-Querys
  • alle Querys, die eine Transaktion eröffnen
  • Aufrufe von Stored-Procedures und nutzerdefinierten Funktionen
  • DDL-Querys (DROP, CREATE, ALTER TABLE etc.)
  • die Ausführung (EXECUTE) von Prepared-Statements
  • alle Querys, die temporäre Tabellen nutzen

Folgende Querys werden an den Slave geschickt:

  • Read-Only-Querys
  • Read-Only-Querys auf System- oder nutzerdefinierte Variablen
  • SHOW-Querys
  • Aufrufe von Systemfunktionen

Daneben gibt es nur Querys, die an alle Session-Backends geleitet werden:

  • SET-Querys
  • USE <dbname>
  • Zuweisungen von Variablen (@myvar := 5) in Read-Only-Querys
  • PREPARE-Querys
  • Kommandos wie QUIT, PING, STMT RESET, CHANGE USER etc.

Auf den ersten Blick macht Maxscale einen hervorragenden Eindruck. Der Nutzer kann Anfragen auf Master und Slaves verteilen, ohne Änderungen an der Applikation vornehmen zu müssen.

Der Autor, Thomas Stein, arbeitet als Senior Systems Engineer beim Berliner Webhoster Syseleven.

 MariaDB Maxscale: Die fehlende Komponente für verteilte MySQL-Setups

eye home zur Startseite
aFrI 02. Feb 2015

Generell: Die Galera-Extension ist schon länger verfügbar und kann genutzt werden (z.B...

Shuro 30. Jan 2015

Und was genau hat dieser Beitrag nun mit Oracle zu tun? Maxscale ist von MariaDB, nicht...

Baron Münchhausen. 30. Jan 2015

LOL. Schon wieder hat das Ding einen neuen Beitrag erstellt, statt zu bearbeiten.



Anzeige

Stellenmarkt
  1. Arnold & Richter Cine Technik GmbH & Co. Betriebs KG, München
  2. SimCorp Central Europe, Bad Homburg (bei Frankfurt)
  3. Fraunhofer-Institut für Integrierte Schaltungen IIS, Erlangen
  4. OSRAM GmbH, Paderborn


Anzeige
Hardware-Angebote
  1. 599€ + 5,99€ Versand
  2. 129,99€ (219,98€ für zwei)
  3. und mit Gutscheincode bis zu 40€ Rabatt erhalten bei Alternate.de

Folgen Sie uns
       


  1. HMD Global

    Drei neue Nokia-Smartphones laufen mit Android One

  2. Nokia 1 im Hands On

    Android-Go-Smartphone mit Xpress-On-Covern kostet 100 Euro

  3. Nokia 8110 4G im Hands On

    Das legendäre Matrix-Handy kehrt zurück

  4. Galaxy S9 und S9+ im Hands On

    Samsungs neue Smartphones kommen mit variabler Blende

  5. Energizer P16K Pro

    Seltsames Smartphone mit 60-Wh-Riesenakku

  6. Matebook X Pro im Hands on

    Huaweis Notebook kommt mit Nvidia-Grafikkarte

  7. Apple

    iTunes Store sperrt alte Geräte und Betriebssysteme aus

  8. Alcatel 1T

    Oreo-Tablet mit 7-Zoll-Display kostet 70 Euro

  9. Notebook und Tablets

    Huawei stellt neues Matebook und Mediapads vor

  10. V30S Thinq

    LG zeigt sein erstes Thinq-Smartphone



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Homepod im Test: Smarter Lautsprecher für den Apple-affinen Popfan
Homepod im Test
Smarter Lautsprecher für den Apple-affinen Popfan
  1. Rückstände Homepod macht weiße Ringe auf Holzmöbeln
  2. Smarter Lautsprecher Homepod schwer reparierbar
  3. Smarter Lautsprecher Homepod-Reparaturen kosten fast so viel wie ein neues Gerät

Indiegames-Rundschau: Tiefseemonster, Cyberpunks und ein Kelte
Indiegames-Rundschau
Tiefseemonster, Cyberpunks und ein Kelte
  1. Indiegames-Rundschau Krawall mit Knetmännchen und ein Mann im Fass
  2. Games 2017 Die besten Indiespiele des Jahres

HP Omen X VR im Test: VR auf dem Rücken kann nur teils entzücken
HP Omen X VR im Test
VR auf dem Rücken kann nur teils entzücken
  1. 3D Rudder Blackhawk Mehr Frags mit Fußschlaufen
  2. Kreativ-Apps für VR-Headsets Austoben im VR-Atelier
  3. Apps und Games für VR-Headsets Der virtuelle Blade Runner und Sport mit Sparc

  1. Re: Nein! Doch! Oh!

    Teebecher | 02:49

  2. Re: Irgendwie fehlen mir grade die interessanten...

    Furi | 02:45

  3. Re: 11 Jahre Support ...

    ChMu | 02:01

  4. Re: BANAAAAANAAAAA!

    User_x | 01:50

  5. Re: 18,5 : 9

    Prinzeumel | 01:49


  1. 22:11

  2. 20:17

  3. 19:48

  4. 18:00

  5. 17:15

  6. 16:41

  7. 15:30

  8. 15:00


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel