PmaControl logo PmaControl
  • Accueil
  • PmaControl
    • Agents IA 13 agents on-premise
    • Nos offres Community, Cloud, On-Premise, Premium
    • Documentation Guides, API, architecture
    • Clients 28+ entreprises
    • FAQ 25 questions / 7 catégories
    Bases de données
    • MariaDB 30 articles
    • MySQL 10 articles
    • Galera Cluster 6 articles
    • MaxScale 3 articles
    • ProxySQL 2 articles
    • Amazon Aurora MySQL 0 article
    • Azure Database 0 article
    • ClickHouse 0 article
    • GCP CloudSQL 0 article
    • Percona Server 0 article
    • SingleStore 0 article
    • TiDB 0 article
    • Vitess 0 article
    Solutions
    • Support 24×7 Urgences MariaDB & MySQL
    • Observabilité SQL Monitoring, alertes, topologie
    • Haute disponibilité Réplication, failover, Galera
    • Disaster Recovery Backup, restore, RPO/RTO
    • Sécurité & conformité Audit, RGPD, SOC2
    • Migration & upgrade Zero downtime, pt-osc, gh-ost
  • Nos offres
  • Ressources
    • Documentation Guides techniques & API
    • FAQ 25 questions fréquentes
    • Témoignages Retours clients & cas d'usage
    • Blog Articles & insights
    • Roadmap Fonctionnalités à venir
    Domaines d'expertise
    • Observabilité SQL Monitoring, alertes, topologie Dot3
    • Haute disponibilité Réplication, failover, Galera
    • Sécurité & conformité Audit, RGPD, SOC2, ISO 27001
    • Disaster Recovery Backup, restore, RPO/RTO
    • Performance & optimisation Digests, EXPLAIN, tuning
    • Migration & upgrade Zero downtime, pt-osc
    Liens rapides
    • Wiki GitHub 26 pages — install, engine, plugins
    • Code source Repository GitHub officiel
    • Support 24×7 Urgences MariaDB & MySQL
    • Réserver une démo 30 min — architecture réelle
  • Support 24×7
  • Réserver une démo
Réserver une démo
🇫🇷 FR Français 🇬🇧 EN English 🇵🇱 PL Polski 🇷🇺 RU Русский 🇨🇳 ZH 中文
← Retour au blog

MaxScale : bien plus qu'un reverse proxy SQL (partie 1)

Publié le 31 juillet 2025 Par Sylvain ARBAUDIE
maxscale mariadb proxy architecture
Partager X LinkedIn Facebook Email PDF
MaxScale : bien plus qu'un reverse proxy SQL (partie 1)

Pas un simple proxy

Quand on parle de MaxScale, le réflexe est de le comparer à HAProxy ou à un load balancer classique. C'est une erreur fondamentale. MaxScale n'est pas un proxy de niveau 4 (TCP). C'est un proxy de niveau 7 qui comprend le protocole SQL. Il parse les requêtes, analyse leur type, et prend des décisions de routage intelligentes.

La différence est comparable à celle entre un facteur qui distribue le courrier par adresse (L4) et un assistant qui lit vos emails, les trie par priorité, filtre le spam, et ne vous montre que ce qui est pertinent (L7). MaxScale lit le SQL.

Authentification : au-delà du mot de passe

MaxScale supporte une gamme complète de mécanismes d'authentification :

  • MariaDBAuth : l'authentification native MariaDB / MySQL avec cache local des credentials
  • PAM : intégration avec les annuaires d'entreprise (LDAP, Active Directory) via Pluggable Authentication Modules
  • GSSAPI/Kerberos : authentification SSO pour les environnements Windows / Active Directory
  • Ed25519 : l'authentification par clé publique de MariaDB, plus sécurisée que le hash SHA classique

L'authentification est gérée au niveau du listener. On peut donc avoir différentes méthodes d'authentification sur différents ports : PAM pour les applications internes, Ed25519 pour les connexions administratives, MariaDBAuth pour la compatibilité legacy.

Protocoles : pas seulement SQL

MaxScale est polyglotte. Il supporte plusieurs protocoles d'entrée et de sortie :

MariaDBClient / MariaDBBackend

Le protocole natif MariaDB / MySQL. C'est le cas d'usage principal : les applications se connectent à MaxScale comme à un serveur de base de données standard.

CDC / AVRO

Le protocol Change Data Capture permet de streamer les modifications du binlog en format AVRO. C'est l'outil idéal pour construire des pipelines de données en temps réel, alimenter des data lakes ou synchroniser des systèmes externes.

NoSQL / MongoDB

MaxScale peut exposer une interface compatible MongoDB. Les applications qui parlent le protocole MongoDB peuvent interagir avec une base MariaDB via MaxScale. C'est une fonctionnalité de niche mais puissante pour les migrations.

PostgreSQL (expérimental)

Le support du protocole PostgreSQL en entrée est en développement. L'objectif est de permettre à des applications PostgreSQL de se connecter à des backends MariaDB.

Moniteurs : l'intelligence de la topologie

Les moniteurs sont les yeux de MaxScale. Ils interrogent régulièrement les serveurs backend pour détecter automatiquement la topologie et l'état de santé du cluster.

mariadbmon

Le moniteur principal pour les topologies de réplication MariaDB / MySQL. Il détecte le master, les slaves, les relais, et l'état de la réplication. Il gère le failover automatique : si le master tombe, un slave est promu, et les autres slaves sont reconfigurés pour répliquer depuis le nouveau master.

galeramon

Le moniteur dédié aux clusters Galera. Il détecte l'état du cluster (Primary, Non-Primary, Disconnected), le nombre de nœuds, le state UUID, et gère le routage en conséquence.

Routeurs : l'intelligence du routage

Les routeurs sont le cerveau de MaxScale. Ils décident où envoyer chaque requête en fonction de son type et de la topologie détectée.

readwritesplit

Le routeur le plus utilisé. Les requêtes en écriture (INSERT, UPDATE, DELETE, CREATE, etc.) sont envoyées au master. Les requêtes en lecture (SELECT) sont distribuées sur les slaves. Les transactions sont envoyées intégralement au master.

readconnroute

Un routeur plus simple qui distribue les connexions (pas les requêtes) sur les serveurs disponibles. Utile pour les lectures intensives qui ne nécessitent pas de séparation lecture/écriture au niveau de la requête.

schemarouter

Route les requêtes vers le serveur qui héberge le schéma demandé. Idéal pour le sharding par base de données : client_europe sur le serveur A, client_asia sur le serveur B.

binlogrouter

Transforme MaxScale en relais de réplication. MaxScale se comporte comme un slave du master, et les vrais slaves se connectent à MaxScale plutôt qu'au master. Cela réduit la charge sur le master et permet de centraliser la distribution du binlog.

kafkarouter (CDC)

Envoie les événements du binlog vers Apache Kafka. Chaque modification de la base est publiée comme un message Kafka, permettant aux consumers de réagir en temps réel.

Filtres : plus de 15 modules

Les filtres interceptent et transforment le flux SQL entre le client et le serveur. MaxScale en propose plus de 15 :

  • qlafilter : journalisation complète des requêtes (audit)
  • regexfilter : réécriture de requêtes par expression régulière
  • cache : cache de requêtes avec invalidation automatique
  • throttlefilter : limitation du débit de requêtes par utilisateur
  • masking : masquage dynamique des données sensibles (emails, numéros de carte)
  • topfilter : collecte des requêtes les plus lentes
  • commentfilter : injection de commentaires SQL pour le tracing
  • tee : duplication du flux vers un second backend (test en shadow)
  • namedserverfilter : routage vers un serveur spécifique basé sur des règles
  • hintfilter : interprétation de hints SQL pour forcer le routage
  • luafilter : exécution de scripts Lua pour une logique personnalisée
  • binlogfilter : filtrage des événements binlog par schéma ou table

Déploiement : Docker et Kubernetes ready

MaxScale est disponible en image Docker officielle :

docker run -d --name maxscale \
  -v /path/to/maxscale.cnf:/etc/maxscale.cnf \
  -p 4006:4006 -p 8989:8989 \
  mariadb/maxscale:latest

Pour Kubernetes, MaxScale se déploie comme un StatefulSet ou un Deployment selon le cas d'usage. L'API REST facilite l'intégration avec les health checks et les probes de readiness.

Valeur métier

Au-delà des fonctionnalités techniques, MaxScale apporte une valeur métier concrète :

  • Haute disponibilité : failover automatique en quelques secondes, transparent pour l'application
  • Scalabilité en lecture : ajout de slaves sans modifier le code applicatif
  • Sécurité : filtrage SQL, masquage de données, authentification centralisée
  • Observabilité : journalisation, métriques, API REST pour le monitoring
  • Migration facilitée : support multi-protocoles pour les transitions technologiques

MaxScale n'est pas un simple reverse proxy. C'est une couche d'infrastructure intelligente qui s'interpose entre les applications et les bases MariaDB / MySQL, apportant résilience, sécurité et flexibilité sans modifier une seule ligne de code applicatif.


Cet article a été initialement publié sur Medium.

Partager X LinkedIn Facebook Email PDF
← Retour au blog

Commentaires (0)

Aucun commentaire pour le moment.

Laisser un commentaire

PmaControl
+33 6 63 28 27 47 contact@pmacontrol.com
Mentions légales GitHub Contact
N'attendez pas l'incident pour comprendre votre architecture. © 2014-2026 PmaControl — 68Koncept