❝Il y a un dicton sur le rôle de la réplication maître-esclave Redis : « La réplication maître-esclave est la pierre angulaire de la haute disponibilité. » Alors, qu'est-ce que la haute disponibilité ? la disponibilité est de réduire le système Le temps qui ne peut pas être fourni est la référence communément entendue aux six 9 et les clusters sont essentiels pour atteindre la haute disponibilité. Cet article présente principalement le mécanisme sentinelle. Avant-propos
Puisque le maître du nœud maître, en tant que patron, ne vous laissera pas jouer. Je sélectionnerai un patron parmi vous quatre, puis vous jouerez avec lui.
Lorsque le patron qui ne joue pas avec vous reviendra, son identité sera invalidée et il ne sera plus votre patron. Il ne peut jouer qu'avec le boss que j'ai sélectionné.
La conversation ci-dessus porte sur la signification de la configuration des sentinelles. Celui qui joue avec elles donnera des données à qui. Une fois que nous connaîtrons le rôle des sentinelles, nous continuerons.
"Enfin, nous utilisons des termes professionnels pour expliquer ce qu'est une sentinelle."
Sentinel, le nom anglais est sentinel, est un système distribué pour une structure maître-esclave Chaque serveur du serveur effectue 监控
Lorsque le nœud maître échoue, un nouveau nœud maître est sélectionné via le mécanisme de vote et tous les nœuds esclaves sont connectés au nouveau nœud maître.
Le processus de dialogue dont nous avons parlé plus haut est l'une des fonctions de la sentinelle.
Quand il s'agit de fonctionner, cela doit être exactement ce que cette sentinelle fait au travail. Décrivons-le d'abord dans un concept relativement sec, puis parlons des principes de fonctionnement un par un ci-dessous.
Trois fonctions des sentinelles监控、通知、自动转移故障
Une chose à noter ici est que Sentinel est également un serveur Redis, mais il ne fournit aucun service au monde extérieur.
Configurer comme nombre impair lors de la configuration de la sentinelle. Alors pourquoi configurer le nombre de serveurs Sentinel sur un nombre impair ? Avec cette question, vous trouverez ci-dessous la réponse que vous souhaitez.
Le fichier de configuration utilisé par sentinel est sentinel.conf
Analysons sentinel Interprétez les informations de configuration du .confMais la plupart sont des commentaires. Ici, Kaka vous propose une commande pour filtrer ces informations inutilescat sentinel.conf | grep -v '#' | grep -v '^$'
Utilisez la commande cat sentinel.conf | grep -v '#' | grep -v '^$' > ./data/sentinel-26379.conf
pour filtrer la sentinelle. conf Déplacez les informations finales vers /usr/local/redis/conf
puis ouvrez sentinel-26379.conf
pour modifier le répertoire de stockage des informations puis copiez rapidement les deux fichiers de configuration sentinelle, les ports sont 26380 et 26381. sed 's/26379/26381/g' sentinel-26379.conf > sentinel-26381.conf
Testez la réplication maître-esclave en état de fonctionnement normal, démarrez trois serveurs Redis, les ports sont 6379、6380、6381
En regardant les informations du nœud maître, il y a deux nœuds esclaves connectés et les ports sont respectivement 6380 et 6381.
Un petit point ici c'est que l'un des décalages est à 1 et l'autre à 0 ! le décalage est le temps de retard. Je teste localement, il y aura donc une situation de 0. Cela arrive rarement lors de l'utilisation d'un serveur cloud. Les valeurs de décalage sont 0 et 1, ce qui est normal. Testez le nœud maître pour ajouter une valeur de hachage, hset kaka name kaka
obtenez la valeur kaka de slave1 et slave2 respectivement, et vérifiez si la réplication maître-esclave fonctionne normalement.
Après les tests, notre structure maître-esclave fonctionne normalement. Démarrer une sentinelleredis-sentinel 26379-sentinel.conf
Connectez-vous à 26379 sentinelles, principalement la dernière ligne. Le nœud maître surveillé s'appelle mymaster, l'état est normal, il y a deux nœuds esclaves et le nombre de sentinelles est. 1 Vérifions les informations de configuration de la sentinelle de 26379. Elles ont été modifiées en ce moment démarre une 26380
sentinelle redis-sentinel 26380-sentinel.conf
, veuillez noter qu'il y a une information supplémentaire dans la dernière ligne. . Cet identifiant est notre nouveau 26379
identifiant ajouté Ensuite, nous sommes arrivés au client de Sentinel 26379, qui a également ajouté l'identifiant de 26380 Sentinel À ce moment-là, nous vérifiions le fichier de configuration de 26379. Sentinel. Lorsque nous avons vérifié le fichier de configuration pour la première fois, 26380 n'était pas configuré. Pour Sentinel, les informations ajoutées après 26380 Sentinel ont été configurées lors de sa deuxième visualisation. Enfin, nous devons démarrer le client Sentinel 3, le numéro de port est 26381. Après le démarrage, nos informations de configuration et celles du serveur seront également modifiées. Si nous ajoutons les informations de Sentinel 26380, Sentinel 26381 les aura également.
Jusqu'à présent, notre configuration de Sentinel est terminée. Ensuite, nous allons arrêter le master node master Après 30 secondes d'attente, nous sommes arrivés au client de 26379 Sentinel. a été ajouté ici. Alors, à quoi servent ces informations ? Décomposons-le.
Nous devons d'abord connaître certaines informations ici
Lorsque nous avons remis le serveur Redis de 6379 en ligne, nous pouvons voir que le serveur Sentinel a répondu avec deux phrases. Une phrase consiste à supprimer 6379 hors ligne. La dernière phrase consiste à reconnecter le 6379 au nouveau nœud maître. À l'heure actuelle, le nœud maître est 6380. Définissez la valeur dans le client Redis sur 6380 pour vérifier si la réplication maître-esclave fonctionne correctement.
Ajoutez le type de liste au nouveau nœud maître 6380 Obtenez cette valeur à 6379 et 6381, c'est tout ! Notre configuration en mode sentinelle est terminée.
Après avoir configuré la sentinelle, vous devez configurez-le Le principe de fonctionnement a été analysé. Ce n'est qu'en connaissant son processus de fonctionnement que nous pourrons avoir une meilleure compréhension de Sentinel.
Les principes expliqués dans cet article ne sont pas si secs ! Permet de lire un article technique sous forme d'histoire.
Pour en venir au fait, le rôle de la sentinelle est la surveillance, la notification et le basculement. Ensuite, le principe de fonctionnement s’articule également autour de ces trois points.
Sentinel l'enverra à tous les nœuds du maître. et esclave La commande obtient son statut et publie les informations sur l'abonnement Sentinel.
sentinel is-master-down-by-address-port
sentinel is-master-down-by-address-port
sur leur propre intranet, confirmant que la première sentinelle qui a envoyé sentinel is-master-down-by-address-port
a dit que vous aviez raison, ce type est bien mort. Lorsque tout le monde pense que le nœud maître est en panne, son statut sera modifié en odown
. Lorsqu'une sentinelle pense que le nœud maître est raccroché, le statut est sdown
, et lorsque la moitié des sentinelles pense que le nœud maître est raccroché, le statut est odown
. C'est pourquoi la sentinelle est configurée avec un nombre impair.❝À ce moment-là, la sentinelle a détecté le problème, alors quelle sentinelle est responsable de la sélection du nouveau nœud maître ? Il ne se peut pas que Zhang San y aille aussi, Li Si y aille aussi, et Wang Wu y aille aussi, donc ce sera chaotique . Il faut choisir le leader parmi toutes les sentinelles, alors comment choisir
❞
Cette fois-ci ? Les cinq sentinelles se réuniront ensemble. Toutes les sentinelles sont dans un intranet. Ensuite, une chose qu'elles feront est que les cinq sentinelles enverront des commandes sentinel is-master-down-by-address-port
en même temps et porteront leurs propres heures d'élection et runid. Chaque sentinelle est à la fois candidate et électeur. Chaque sentinelle dispose d'une voix, et l'enveloppe représente ses droits de vote. Quand sentinel1 et sentinel4 envoient des instructions au groupe en même temps pour préparer l'élection, sentinel2 dit à ce moment-là que je voterai pour celui qui recevra l'instruction en premier. Si sentinel1 est libéré plus tôt, alors le vote de sentinel2 sera porté sur sentinel1. Le vote sera lancé selon cette règle jusqu'à ce que les votes d'une sentinelle représentent la moitié du nombre total de sentinelles. Supposons que sentinelle1 sera élue une fois que le nombre de voix sentinelle1 aura atteint plus de la moitié du nombre total de sentinelles. A ce moment, l’étape suivante est atteinte. Ci-dessus, Sentinel a sélectionné sentinel1 comme représentant pour accéder à tous les nœuds esclaves pour en trouver un comme nœud maître. Il existe certaines règles pour sélectionner un nœud maître, et pas seulement pour en choisir un au hasard.
Tuez d'abord ceux qui ne sont pas en ligne
Tuez celui avec une réponse lente. Sentinel enverra des informations à tous les redis, et celui avec une réponse lente sera tué Tuez celui qui a été déconnecté du nœud maître d'origine pendant le plus longtemps. . Comme la démonstration n'est pas suffisante ici, tout un nouveau slave5 a été ajouté, ce qui n'a aucun sens ! Après avoir jugé des trois points ci-dessus, il reste encore salve4 et slave5, et ils seront examinés selon le principe de priorité.
Après avoir sélectionné un nouveau nœud maître, les instructions doivent être envoyées à tous les nœuds.
C'est tous les points de connaissances sur Sentinel, cet article est le plus important. C'est ainsi que fonctionne Sentinel. Passons brièvement en revue son principe de fonctionnement.
La surveillance est effectuée en premier, et toutes les sentinelles synchronisent les informations
Les sentinelles publient des informations sur les abonnements
Basculement
Ce qui précède est la compréhension de Kaka des sentinelles. Si des erreurs peuvent être commises, Kaka les corrigera à temps.
❝La persévérance dans l'apprentissage, la persévérance dans les blogs et la persévérance dans le partage sont les convictions auxquelles Kaka adhère depuis sa carrière. J'espère que les articles de Kaka dans l'immense Internet. peut vous apporter un peu Rendez-vous dans le prochain numéro
❞
Recommandé : "Tutoriel Redis"
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!