Dans une architecture MySQL nous retrouvons un maître (M) pour les écritures et plusieurs esclaves (S) pour la lecture. MySQL ne permet pas l’extensibilité en écriture mais en lecture, d’ou la notion de « Shards », un ensemble de plusieurs blocks (M-S). L’idée est de partitionner vos données. Mais ceci est une autre histoire. Pour accéder à vos esclaves, nous utilisons une VIP/Load Balancer en « round robin ». Vos applications étant ainsi re-dirigées vers un esclave de façon aléatoire.
La question est maintenant: Comment puis je maintenant enlever un esclave de la rotation?
Tout va dépendre de ce qui vous utilisez comme HW / SW.
En tout cas, ce que nous voulons:
- Ne pas arrêter l’esclave: pour pouvoir travailler dessus sans pour autant le laisser en rotation
- Ne pas utiliser skip-networking: pour ne pas avoir à redémarrer MySQL
Donc nous allons devoir couper la vérification en 2 parties:
- 1. Server OK
- 2. MySQL OK
Votre VIP devra sortir le serveur MySQL de la rotation si (1) ou si (1) ET (2). Un simple stratagème est de mettre un serveur http avec un fichier X.html. Si le fichier X.html est présent alors le serveur est ok.
Ensuite vous pouvez vérifier la connectivité MySQL en elle même.
Mots-clefs : architecture, pratique