Maison développement back-end tutoriel php Introduction aux principes du mécanisme sentinelle Redis (image et texte)

Introduction aux principes du mécanisme sentinelle Redis (image et texte)

Feb 26, 2019 am 09:57 AM
php redis

Le contenu de cet article est de présenter le mécanisme sentinelle de Redis pour permettre à chacun de comprendre le principe du mécanisme sentinelle et comment le mettre en œuvre. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

Introduction aux principes du mécanisme sentinelle Redis (image et texte)

Vue d'ensemble

La réplication Redis présente un défaut Lorsque le maître hôte tombe en panne, nous avons besoin de résoudre. le commutateur manuellement, par exemple en utilisant l'esclave de personne. En effet, la réplication maître-esclave n'a pas été implémentée. La haute disponibilité se concentre sur les machines de sauvegarde et utilise la redondance du système dans le cluster. Lorsqu'une machine du système est endommagée, d'autres machines de sauvegarde peuvent rapidement la prendre en charge pour démarrer le service. .

Problèmes de réplication maître-esclave

Introduction aux principes du mécanisme sentinelle Redis (image et texte)

Une fois que le nœud maître tombe en panne et que le service d'écriture ne peut pas être utilisé, vous devez changer manuellement, resélectionner le nœud maître et définir manuellement la relation maître-esclave.

Alors comment le résoudre ? Si nous disposons d'un programme de surveillance capable de surveiller l'état de chaque machine et d'effectuer des ajustements en temps opportun, transformant les opérations manuelles en opérations automatiques. L’émergence de Sentinel vise à résoudre ce problème.

Principe et mise en œuvre du mécanisme sentinelle

Redis Sentinel

Redis Sentinel est une architecture distribuée qui contient plusieurs nœuds Sentinel et nœuds de données Redis. Chaque nœud Sentinel surveille le nœud de données et les autres nœuds Sentinel. Lorsqu'il constate que le nœud est inaccessible, il le marquera hors ligne. Si le nœud maître identifié est le nœud maître, il « négociera » également avec d'autres nœuds Sentinel. Lorsque la plupart des nœuds Sentinel pensent que le nœud maître est inaccessible, ils éliront un nœud Sentinel pour effectuer le basculement automatique et en informeront en même temps le nœud maître. Côté application Redis de ce changement en temps réel. L'ensemble du processus est entièrement automatique et ne nécessite aucune intervention manuelle, cette solution résout donc efficacement le problème de haute disponibilité de Redis.

Comme le montre la figure :


Introduction aux principes du mécanisme sentinelle Redis (image et texte)

Processus de basculement de base

1) Le nœud maître échoue à ce moment, les deux nœuds esclaves perdent la connexion avec le nœud maître et la réplication maître-esclave échoue.

Introduction aux principes du mécanisme sentinelle Redis (image et texte)

2) Chaque nœud Sentinel découvre que le nœud maître a échoué grâce à une surveillance régulière

Introduction aux principes du mécanisme sentinelle Redis (image et texte)

3) Plusieurs Sentinel Le les nœuds se mettent d'accord sur la défaillance du nœud principal et élisent l'un des nœuds comme leader responsable du basculement.

Introduction aux principes du mécanisme sentinelle Redis (image et texte)

4) Le nœud leader Sentinel a effectué le basculement. L'ensemble du processus est fondamentalement le même que notre ajustement manuel, mais il est terminé automatiquement.


Introduction aux principes du mécanisme sentinelle Redis (image et texte)

5) Après le basculement, l'ensemble de la structure Redis Sentinel a réélu un nouveau nœud maître.

Introduction aux principes du mécanisme sentinelle Redis (image et texte)

Instance

Utilisez Docker pour créer le conteneur Redis suivant
redis-sentinel1    172.10.0.9    22530 -> 22530    sentinel
redis-sentinel2    172.10.0.10    22531 -> 6379    sentinel
redis-sentinel3    172.10.0.11    22532 -> 6379    sentinel
redis-master2    172.10.0.5    6383  -> 6379    Master
redis-slave2    172.10.0.6    6384  -> 6379    Slave
redis-slave3    172.10.0.7    6385  -> 6379    Slave
Copier après la connexion

Configuration

Configuration de base de Sentinel

sentinel monitor mymaster 127.0.0.1 7000 2
Copier après la connexion

Le nom, l'adresse IP et le port du nœud maître surveillé Que signifient les 2 derniers. ? Si Sentinel détecte un problème, un basculement se produira. Par exemple, si la configuration est 2, cela signifie qu'au moins deux nœuds Sentinel pensent que le nœud maître est inaccessible. Cette détermination d'inaccessibilité est alors objective. Plus le paramètre est petit, plus les conditions pour atteindre le niveau hors ligne sont souples, et vice versa. Il est généralement recommandé de le définir sur la moitié du nœud Sentinel plus 1.

sentinel down-after-millseconds mymaster 30000
Copier après la connexion

C'est le délai d'attente (en millisecondes). Par exemple, lorsque vous envoyez une requête ping à une machine et que vous ne parvenez toujours pas à la tester après une longue période, cela est alors considéré comme un problème.

sentinel parallel-syncs mymaster 1
Copier après la connexion

当 Sentinel 节点集合对主节点故障判定达成一致时,Sentinel 领导者节点会做故障转移操作,选出新的主节点,原来的从节点会向新的主节点发起复制操作,parallel-syncs 就是用来限制在一次故障转移之后,每次向新的主节点发起复制操作的从节点个数,指出 Sentinel 属于并发还是串行。1代表每次只能复制一个,可以减轻 Master 的压力。

Introduction aux principes du mécanisme sentinelle Redis (image et texte)

sentinel auth-pass <master-name> <password></password></master-name>
Copier après la connexion

如果 Sentinel 监控的主节点配置了密码,sentinel auth-pass 配置通过添加主节点的密码,防止 Sentinel 节点对主节点无法监控。

sentinel failover-timeout mymaster 180000
Copier après la connexion

表示故障转移的时间。

技巧

1)Sentinel 节点不应该部署在一台物理“机器”上。

这里特意强调物理机是因为一台物理机做成了若干虚拟机或者现今比较流行的容器,它们虽然有不同的 IP 地址,但实际上它们都是同一台物理机,同一台物理机意味着如果这台机器有什么硬件故障,所有的虚拟机都会受到影响,为了实现 Sentinel 节点集合真正的高可用,请勿将 Sentinel 节点部署在同一台物理机器上。

2)部署至少三个且奇数个的 Sentinel 节点。

3个以上是通过增加 Sentinel 节点的个数提高对于故障判定的准确性,因为领导者选举需要至少一半加1个节点,奇数个节点可以在满足该条件的基础上节省一个节点。

【相关文章】

Redis主从复制的原理介绍(图文)

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'avenir de PHP: adaptations et innovations L'avenir de PHP: adaptations et innovations Apr 11, 2025 am 12:01 AM

L'avenir de PHP sera réalisé en s'adaptant aux nouvelles tendances technologiques et en introduisant des fonctionnalités innovantes: 1) s'adapter aux architectures de cloud computing, de conteneurisation et de microservice, en prenant en charge Docker et Kubernetes; 2) introduire des compilateurs JIT et des types d'énumération pour améliorer l'efficacité des performances et du traitement des données; 3) Optimiser en continu les performances et promouvoir les meilleures pratiques.

PHP vs Python: comprendre les différences PHP vs Python: comprendre les différences Apr 11, 2025 am 12:15 AM

PHP et Python ont chacun leurs propres avantages, et le choix doit être basé sur les exigences du projet. 1.Php convient au développement Web, avec une syntaxe simple et une efficacité d'exécution élevée. 2. Python convient à la science des données et à l'apprentissage automatique, avec une syntaxe concise et des bibliothèques riches.

Comment construire le mode Cluster Redis Comment construire le mode Cluster Redis Apr 10, 2025 pm 10:15 PM

Le mode Redis Cluster déploie les instances Redis sur plusieurs serveurs grâce à la rupture, à l'amélioration de l'évolutivité et de la disponibilité. Les étapes de construction sont les suivantes: Créez des instances de redis étranges avec différents ports; Créer 3 instances Sentinel, Moniteur Redis Instances et basculement; Configurer les fichiers de configuration Sentinel, ajouter des informations d'instance Redis de surveillance et des paramètres de basculement; Configurer les fichiers de configuration d'instance Redis, activer le mode de cluster et spécifier le chemin du fichier d'informations de cluster; Créer un fichier nœuds.conf, contenant des informations de chaque instance redis; Démarrez le cluster, exécutez la commande CREATE pour créer un cluster et spécifiez le nombre de répliques; Connectez-vous au cluster pour exécuter la commande d'informations de cluster pour vérifier l'état du cluster; faire

PHP: Est-il en train de mourir ou est-ce simplement de s'adapter? PHP: Est-il en train de mourir ou est-ce simplement de s'adapter? Apr 11, 2025 am 12:13 AM

Le PHP n'est pas en train de mourir, mais d'adapter et d'évoluer constamment. 1) PHP a subi plusieurs itérations de version depuis 1994 pour s'adapter aux nouvelles tendances technologiques. 2) Il est actuellement largement utilisé dans le commerce électronique, les systèmes de gestion de contenu et d'autres domaines. 3) PHP8 introduit le compilateur JIT et d'autres fonctions pour améliorer les performances et la modernisation. 4) Utilisez OPCACHE et suivez les normes PSR-12 pour optimiser les performances et la qualité du code.

Comment utiliser la commande redis Comment utiliser la commande redis Apr 10, 2025 pm 08:45 PM

L'utilisation de la directive Redis nécessite les étapes suivantes: Ouvrez le client Redis. Entrez la commande (Verbe Key Value). Fournit les paramètres requis (varie de l'instruction à l'instruction). Appuyez sur Entrée pour exécuter la commande. Redis renvoie une réponse indiquant le résultat de l'opération (généralement OK ou -err).

Comment démarrer le serveur avec redis Comment démarrer le serveur avec redis Apr 10, 2025 pm 08:12 PM

Les étapes pour démarrer un serveur Redis incluent: Installez Redis en fonction du système d'exploitation. Démarrez le service Redis via Redis-Server (Linux / MacOS) ou Redis-Server.exe (Windows). Utilisez la commande redis-Cli Ping (Linux / MacOS) ou redis-Cli.exe Ping (Windows) pour vérifier l'état du service. Utilisez un client redis, tel que redis-cli, python ou node.js pour accéder au serveur.

Comment utiliser Redis Lock Comment utiliser Redis Lock Apr 10, 2025 pm 08:39 PM

L'utilisation des opérations Redis pour verrouiller nécessite l'obtention du verrouillage via la commande setnx, puis en utilisant la commande Expire pour définir le temps d'expiration. Les étapes spécifiques sont les suivantes: (1) Utilisez la commande setnx pour essayer de définir une paire de valeurs de clé; (2) Utilisez la commande Expire pour définir le temps d'expiration du verrou; (3) Utilisez la commande del pour supprimer le verrouillage lorsque le verrouillage n'est plus nécessaire.

Comment effacer les données redis Comment effacer les données redis Apr 10, 2025 pm 10:06 PM

Comment effacer les données Redis: utilisez la commande flushall pour effacer toutes les valeurs de clé. Utilisez la commande flushdb pour effacer la valeur clé de la base de données actuellement sélectionnée. Utilisez SELECT pour commuter les bases de données, puis utilisez FlushDB pour effacer plusieurs bases de données. Utilisez la commande del pour supprimer une clé spécifique. Utilisez l'outil Redis-CLI pour effacer les données.

See all articles