Browse Source

Add filter description and some advanced configuration

master
mtrossevin 1 month ago
parent
commit
af6c2131ec
1 changed files with 17 additions and 0 deletions
  1. +17
    -0
      HowtoMaxScale.md

+ 17
- 0
HowtoMaxScale.md View File

@@ -112,6 +112,17 @@ MariaDB MaxScale à plusieurs types de routages possibles, les principaux sont:

Il y a d'autres router mais ils sont soit en béta soit très instables si non configurés avec une bonne connaissance du contenu des base de donnés.

### Filtres

MaxScale peut faire passer les statements SQL par des filtres avant de les envoyés au routeur et donc au serveurs MySQL, ces filtres permettent de bloquer certaines requêtes, de conseiller au routeur d'envoyer des requêtes sur un certain serveur, ou de modifier le retour des serveurs.

* `dbfwfilter`: Permet de bloquer des requêtes de manière plus souple que le systême de GRANT traditionnel. Le filtre est considéré comme une solution par le meilleur effort et à pour but principal de protéger contre les erreurs et non les attaques.
* `insertstream`: (⚠ : Expérimental) Permet de convertir des `INSERT` en masse en une seul commande `LOAD DATA LOCAL INFILE` afin de réduire l'utilisation du traffic et augmenter la vitesse des insertions de masse.
* `cache`: (⚠ : N'est pas au courant des droits utilisateurs) Permet de cacher le retour d'un `SELECT` tant qu'il n'y a pas eu d'écriture afin d'augmenter la vitesse de retour d'un `SELECT` identique.
* `tee`: Permet de copier une requête et de l'envoyée vers un autre service.
* `throttle`: Permet de limité la fréquence des requêtes.
* `binlogfilter`: Permet de faire de la réplication partiel avec `binlogrouter`.

## Utilisation

Pour utiliser MariaDB MaxScale il suffit de l'utiliser comme un serveur MySQL normal:
@@ -119,4 +130,10 @@ Pour utiliser MariaDB MaxScale il suffit de l'utiliser comme un serveur MySQL no
~~~
$ mysql --host <adresse du serveur maxscale> --user=USER --password base_de_donnée
~~~
## Configuration avancée

### Limiter le retard visible

Cela se fait au niveau du routeur et n'est possible que pour le routeur `Readwritesplit`, `readconnroute` étant trop léger pour permettre ce genre de configurations.

Pour que le routage ne se fasse pas du tout sur un serveur secondaire ayant un trop grand retard il faut préciser la valeur de l'option `max_slave_replication_lag` avec le nombre de secondes de lags autorisées. Pour que le routeur "attende" que le serveur secondaire puisse retourner une valeur consistente lors d'une lecture suivant des modifications de données, il faut définir l'option `causal_reads` à `true` et que les serveurs ai le paramètre `session_track_system_variables` défini à `last_gtid`.

Loading…
Cancel
Save