load_balancing
- Random (par défaut)
- nom d’hôte le plus proche
- distance de Levenshtein du nom d’hôte
- plus long préfixe commun du nom d’hôte
- plus long suffixe commun du nom d’hôte
- dans l’ordre
- premier ou aléatoire
- Round robin
Random (par défaut)
Nom d’hôte le plus proche
Distance de Levenshtein du nom d’hôte
nearest_hostname, mais compare le nom d’hôte à l’aide de la distance de Levenshtein. Par exemple :
Plus long préfixe commun du nom d’hôte
nearest_hostname, mais la réplique dont le nom d’hôte a le plus long préfixe commun avec le nom d’hôte local est privilégiée (plus le préfixe commun est long, plus la priorité est élevée). Contrairement à nearest_hostname, qui compte les caractères différents position par position, cette stratégie n’est pas perturbée par des noms d’hôte dont les segments numériques ont des longueurs différentes. Par exemple, pour le nom d’hôte local sfe301 :
sfe10101 est privilégié, car il partage avec sfe301 le plus long préfixe commun (sfe, de longueur 3).
Les répliques ayant un préfixe commun de même longueur sont choisies au hasard. En particulier, lorsqu’aucune réplique ne partage de préfixe avec le nom d’hôte local (toutes les longueurs de préfixe commun sont nulles), cette stratégie se comporte exactement comme random.
Plus long suffixe commun du nom d’hôte
hostname_longest_common_prefix, mais ici, on compare le plus long suffixe commun au lieu du préfixe. Cela est utile lorsque l’identité du centre de données est encodée dans le suffixe du nom d’hôte. Par exemple, pour le nom d’hôte local et46gtghn.qc.localdomain :
ab999.qc.localdomain est préféré, car il partage avec et46gtghn.qc.localdomain le suffixe commun le plus long (.qc.localdomain, longueur 15).
Les répliques ayant un suffixe commun de même longueur sont choisies au hasard. En particulier, lorsqu’aucune réplique ne partage de suffixe avec le nom d’hôte local (toutes les longueurs de suffixe commun sont nulles), cette stratégie se comporte exactement comme random.
Dans l’ordre
Premier ou aléatoire
first_or_random résout le problème de l’algorithme in_order. Avec in_order, si une réplique tombe en panne, la suivante reçoit une charge doublée, tandis que les autres répliques continuent de gérer le volume de trafic habituel. Avec l’algorithme first_or_random, la charge est répartie uniformément entre les répliques encore disponibles.
Il est possible de définir explicitement quelle réplique est la première à l’aide du paramètre load_balancing_first_offset. Cela offre davantage de contrôle pour rééquilibrer les charges de travail des requêtes entre les répliques.
Round Robin
round_robin sont prises en compte).