Assurer la disponibilité de MySQL |
Le système de gestion de la base de données est une composante très importante d'une application. Sa défaillance entraine dans la plus part du temps une interruption de service. Ce qui n'est pas toléré pour un service critique
Nous disposons d'un serveur "master" et de n serveurs "slave". La communication se fait essentiellement avec le master et les données sont repliquées sur les slaves.
🦟 En cas de défaillance d'un slave il faut juste le remettre en place
[ Application ]
/ \
/ Écritures \ Lectures
v v
┌──────────────┐ ┌──────────────┐
│ Master (Maître)│───► │ Slave (Esclave)│ (Réplication asynchrone)
└──────────────┘ └──────────────┘
┌──────────────┐
│ Application │
└──────┬───────┘
│ (Via Load Balancer / Proxy)
┌──────┴───────┐
│ │
v v
┌──────────────┐┌──────────────┐┌──────────────┐
│ Nœud 1 ││ Nœud 2 ││ Nœud 3 │
│ (Écrit/Lit) ││ (Écrit/Lit) ││ (Écrit/Lit) │
└──────▲───────┘└──────▲───────┘└──────▲───────┘
│ │ │
└──────────────┴──────────────┘
Flux de Certification Mutuel
(Synchrone / wsrep)