Vidéo 49 • Haute Disponibilité & Big Data
Sharding :
L'Éclatement Stratégique
Apprenez à répartir vos clients sur plusieurs clusters de serveurs pour supporter une croissance infinie sans ralentissement.
Quand le Monolithe Explose
Vertical Scaling (Limite)
Vous achetez un serveur de plus en plus gros. Mais un jour, les index deviennent trop lourds pour la RAM, peu importe le prix payé.
Horizontal Scaling (Sharding)
On divise les clients. Les clients A à M vont sur le Serveur 1. Les clients N à Z vont sur le Serveur 2.
Laboratoire : Routage de Requêtes
L'Intelligence du Dispatcher
Le Catalogue des Chemins
Le serveur central possède une table de correspondance.
Dès qu'un client se connecte, le serveur regarde son TenantID et charge dynamiquement les paramètres de connexion SQL vers le bon cluster physique.
Map["BETA"] ➔ Server_02
L'Aiguillage des Connexions
// 1. Récupération du cluster assigné au client sMonCluster est une chaîne = LookupShardHost(gsIDTenant) // 2. Configuration DYNAMIQUE de la connexion HFSQL MyCnx est une Connexion MyCnx.Serveur = sMonCluster MyCnx.Utilisateur = "SaaS_Admin" MyCnx.MotDePasse = "P@ssw0rd123" // 3. On bascule le contexte de l'application sur ce cluster SI PAS HOuvreConnexion(MyCnx) ALORS HTTPRéponse(503, "Shard cluster temporarily unavailable") RETOUR FIN HChangeConnexion(*, MyCnx)