Qu'est-ce que le cerveau divisé du cluster Redis ?
La division cérébrale du cluster Redis signifie qu'en raison de problèmes de réseau, le nœud maître Redis, le nœud esclave Redis et le cluster sentinelle se trouvent dans des partitions réseau différentes. À ce stade, le cluster sentinelle ne peut pas détecter l'existence. du maître, donc faites la promotion du nœud esclave au nœud maître. (Apprentissage recommandé : Tutoriel vidéo Redis )
À l'heure actuelle, il existe deux nœuds maîtres différents, tout comme un cerveau divisé en deux.
Dans le problème du cluster split-brain, si le client continue d'écrire des données basées sur le nœud maître d'origine, le nouveau nœud maître ne pourra pas synchroniser les données. Lorsque le problème de réseau est résolu, la sentinelle. Le cluster remplacera le nœud maître d'origine par le nœud maître d'origine. Le nœud est réduit à un nœud esclave. À ce stade, la synchronisation des données du nouveau maître entraînera une grande quantité de perte de données.
Solution
Dans le fichier de configuration redis, il y a deux paramètres
min-slaves-to-write 3
min-slaves-max-lag 10
Copier après la connexion
Le premier paramètre indique le nombre minimum d'esclaves connectés au maître
Le deuxième paramètre indique le délai maximum pour que l'esclave se connecte au maître
Si le nombre d'esclaves connectés au maître est inférieur au premier paramètre et le délai de ping. Si le temps est inférieur ou égal au deuxième paramètre, alors le maître rejettera la demande d'écriture. Après avoir configuré ces deux paramètres, si une division du cerveau du cluster se produit, le nœud maître d'origine rejettera la demande d'écriture. du client, ce qui peut réduire la quantité de synchronisation des données perdues.
Remarque : Les paramètres de la nouvelle version du fichier redis.conf sont devenus
min-replicas-to-write 3
min-replicas-max-lag 10
Copier après la connexion
Le problème de perte de données dans le cas d'une réplication asynchrone dans redis peut également utiliser ces deux paramètres
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!