Cet article vous fera comprendre le mécanisme Sentinel dans Redis et vous présentera deux façons d'exécuter Sentinel. J'espère qu'il vous sera utile !
Redis-Sentinel est la solution haute disponibilité (HA) officiellement recommandée par Redis Lorsque vous utilisez Redis comme solution haute disponibilité pour maître-esclave, si le maître est en panne, Redis. Lui-même (y compris bon nombre de ses clients) n'implémente pas la commutation maître-esclave automatique, et Redis-sentinel lui-même est également un processus exécuté de manière indépendante. Il peut surveiller plusieurs clusters maître-esclave et effectuer une commutation automatique après avoir découvert que le maître est. vers le bas. . [Recommandations associées : Tutoriel vidéo Redis]
Ses principales fonctions sont les suivantes :
De toute évidence, l'utilisation d'un seul processus sentinelle pour surveiller le cluster Redis n'est pas fiable lorsque le processus sentinelle tombe en panne (la sentinelle elle-même a également un problème à point unique, unique. -point de -failure) L'ensemble du système de cluster ne fonctionnera pas comme prévu. Il est donc nécessaire de clusterer sentinelle, ce qui présente plusieurs avantages :
La dernière version stable actuelle de Sentinel s'appelle Sentinel 2 (pour la distinguer de la précédente Sentinel 1). Publié avec le package d'installation redis2.8. Après avoir installé Redis2.8, vous pouvez trouver le programme de démarrage Redis-sentinel dans redis2.8/src/.
Fortement recommandé : si vous utilisez redis2.6 (la version sentinel est sentinel 1), vous devez de préférence utiliser la version redis2.8 de sentinel 2, car sentinel 1 a de nombreux bugs et est officiellement obsolète, c'est donc fortement recommandé pour utiliser redis2.8 et sentinel 2.
Il existe deux façons d'exécuter Sentinel :
redis-sentinel /path/to/sentinel.conf
redis-sentinel /path/to/sentinel.conf
redis-server /path/to/sentinel.conf --sentinel
以上两种方式,都必须指定一个sentinel的配置文件sentinel.conf,如果不指定,将无法启动sentinel。sentinel默认监听26379端口,所以运行前必须确定该端口没有被别的进程占用。
Redis源码包中包含了一个sentinel.conf文件作为sentinel的配置文件,配置文件自带了关于各个配置项的解释。典型的配置项如下所示:
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 60000 sentinel failover-timeout mymaster 180000 sentinel parallel-syncs mymaster 1 sentinel monitor resque 192.168.1.3 6380 4 sentinel down-after-milliseconds resque 10000 sentinel failover-timeout resque 180000 sentinel parallel-syncs resque 5
上面的配置项配置了两个名字分别为mymaster和resque的master,配置文件只需要配置master的信息就好啦,不用配置slave的信息,因为slave能够被自动检测到(master节点会有关于slave的消息)。需要注意的是,配置文件在sentinel运行期间是会被动态修改的,例如当发生主备切换时候,配置文件中的master会被修改为另外一个slave。这样,之后sentinel如果重启时,就可以根据这个配置来恢复其之前所监控的redis集群的状态。
接下来我们将一行一行地解释上面的配置项:
sentinel monitor mymaster 127.0.0.1 6379 2
redis-server /path/to/sentinel.conf --sentinel
🎜🎜Les deux méthodes ci-dessus doivent être spécifiées A fichier de configuration sentinel sentinel.conf S'il n'est pas spécifié, sentinel ne sera pas démarré. Sentinel écoute le port 26379 par défaut, vous devez donc vous assurer que le port n'est pas occupé par d'autres processus avant de l'exécuter. 🎜🎜sentinel moniteur mymaster 127.0.0.1 6379 2🎜
🎜sentinel en panne après millisecondes mymaster 60000 sentinel failover-timeout mymaster 180000 sentinel synchronisations parallèles mymaster 1 sentinel monitor resque 192.168.1.3 6380 4 sentinel down-after-milliseconds resque 10000 sentinel failover-timeout resque 180000 sentinel parallel-syncs resque 5🎜🎜Les éléments de configuration ci-dessus configurent deux noms nommés mymaster et resque Master, la configuration. Le fichier n'a besoin que de configurer les informations du maître, et il n'est pas nécessaire de configurer les informations de l'esclave, car l'esclave peut être automatiquement détecté (le nœud maître aura des messages sur l'esclave). Il convient de noter que le fichier de configuration sera modifié dynamiquement pendant l'exécution de Sentinel. Par exemple, lorsqu'un basculement maître-esclave se produit, le maître dans le fichier de configuration sera remplacé par un autre esclave. De cette façon, si Sentinel est redémarré ultérieurement, il peut restaurer l'état du cluster Redis qu'il surveillait précédemment en fonction de cette configuration. 🎜🎜Ensuite, nous expliquerons les éléments de configuration ci-dessus ligne par ligne : 🎜🎜
moniteur sentinelle mymaster 127.0.0.1 6379 2
🎜Cette ligne représente que le nom du maître surveillé par sentinel est mymaster et que l'adresse est 127.0.0.1:6379. Que signifient les 2 derniers à la fin de la ligne ? Nous savons que le réseau n'est pas fiable. Parfois, une sentinelle pense à tort qu'un redis maître est mort en raison d'une congestion du réseau. Lorsque la sentinelle est en cluster, la solution à ce problème devient très simple : il suffit que plusieurs sentinelles communiquent entre elles. . Communiquer pour confirmer si un maître est réellement mort. Ce 2 signifie que lorsqu'il y a deux sentinelles dans le cluster qui pensent que le maître est mort, celui-ci peut véritablement être considéré comme indisponible. (Chaque sentinelle du cluster sentinelle communique également entre elles via le protocole de potins).
Pour plus de connaissances sur la programmation, veuillez visiter : Vidéos de programmation ! !
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!