Maison  >  Article  >  base de données  >  Redis en tant que stratégie de haute disponibilité et de basculement à grande échelle pour une plate-forme de traitement de flux de messages

Redis en tant que stratégie de haute disponibilité et de basculement à grande échelle pour une plate-forme de traitement de flux de messages

王林
王林original
2023-06-20 09:13:39817parcourir

Redis en tant que stratégie de haute disponibilité et de basculement à grande échelle pour la plate-forme de traitement des flux de messages

Redis, en tant que base de données NoSQL hautes performances, a reçu de plus en plus d'attention et d'utilisation. Surtout dans le domaine Internet, Redis n'est pas seulement utilisé comme cache, mais devient également l'une des infrastructures importantes de la plateforme de traitement des flux de messages. Pour ce scénario d'utilisation, nous devons prendre en compte la stratégie de haute disponibilité et de basculement de Redis pour garantir le fonctionnement stable de la plateforme de flux de messages.

Haute disponibilité de Redis

Afin d'atteindre la haute disponibilité de Redis, nous pouvons utiliser Redis Sentinel ou Redis Cluster. Parmi eux, Redis Sentinel prend en charge plusieurs nœuds maître-esclave Redis et réalise un basculement automatique en se surveillant mutuellement ; tandis que Redis Cluster permet à plusieurs nœuds Redis de former un cluster pour réaliser des fonctions de partage automatique des données et de basculement automatique.

Lors de l'utilisation de Redis Sentinel pour une garantie de haute disponibilité, nous devons prêter attention aux points suivants :

1. Au moins trois nœuds Sentinel

Redis Sentinel nécessite au moins trois nœuds pour le basculement. En effet, lorsque Redis Sentinel est en cours d'exécution, ils se surveillent mutuellement. Lorsqu'un Sentinel pense qu'un nœud maître Redis est en panne, il diffuse ces informations aux autres nœuds Sentinel. Il doit auparavant atteindre le consensus de plus de deux nœuds Sentinel. il pense qu'un certain nœud maître Redis est en panne. Ce nœud maître Redis échoue.

2. Plusieurs nœuds maître-esclave Redis

Redis Sentinel peut prendre en charge plusieurs nœuds maître-esclave Redis pour réaliser la séparation en lecture-écriture et l'équilibrage de charge. Dans le même temps, plusieurs nœuds maîtres Redis doivent également être indépendants les uns des autres pour garantir que le temps d'arrêt d'un nœud maître n'affectera pas les autres nœuds maîtres.

3. La synchronisation temporelle est requise entre les nœuds maîtres et esclaves

Le travail de Redis Sentinel nécessite des horodatages précis pour le jugement. Par conséquent, nous devons nous assurer que l’heure entre les nœuds maître et esclave Redis est synchronisée. La synchronisation de l'heure peut être réalisée via le service NTP.

Lors de l'utilisation de Redis Cluster comme infrastructure de la plate-forme de traitement des flux de messages, nous devons prêter attention aux problèmes suivants :

1 Nombre de nœuds

Redis Cluster prend en charge jusqu'à 16 384 nœuds et son utilisation n'est pas recommandée. moins de 6 nœuds. Dans le même temps, nous devons également prêter attention à la configuration matérielle et aux performances de chaque nœud.

2. Partage automatique des données

Redis Cluster distribuera automatiquement les données à différents nœuds pour garantir que la quantité de données sur chaque nœud est relativement équilibrée. Pour les utilisateurs, il n'est pas nécessaire d'effectuer manuellement le partage des données, Redis Cluster le gérera automatiquement.

3. Failover

Redis Cluster prend également en charge le transfert automatique en cas de panne. Lorsqu'un nœud maître du cluster tombe en panne, Redis Cluster transférera automatiquement les données de ce nœud vers d'autres nœuds et élira un nouveau nœud maître pour assurer la disponibilité du cluster.

Stratégie de basculement Redis

Pendant le fonctionnement de Redis, diverses pannes peuvent survenir, telles qu'un temps d'arrêt du nœud, une panne de réseau, des problèmes de synchronisation maître-esclave, etc. À l’heure actuelle, nous devons réfléchir à la manière de mettre en œuvre le basculement automatique de Redis.

1. Basculement de Redis Sentinel

Redis Sentinel peut réaliser le basculement des manières suivantes :

(1) Détection des pannes

Redis Sentinel effectuera régulièrement des contrôles de santé sur les nœuds maître et esclave Redis lorsqu'un nœud est en panne ou. Lorsque la connexion est perdue, Sentinel marque le nœud comme « suspecté d'être en panne ».

(2) Calcul du quorum

Lorsqu'un nœud Sentinel découvre qu'un nœud maître Redis est suspecté d'être en panne, il envoie une notification aux autres nœuds Sentinel. Lorsque la plupart des nœuds Sentinel pensent que le nœud maître est en panne, le nœud maître. volonté Il est jugé comme un véritable temps d'arrêt.

(3) Élire un nouveau maître

Lorsque le nœud maître tombe en panne, l'un des autres nœuds esclaves sera élu comme nouveau nœud maître. Dans le même temps, ce nouveau nœud maître doit également synchroniser les données sur l’ancien nœud maître.

2. Basculement du cluster Redis

La façon dont Redis Cluster implémente le basculement est différente de Redis Sentinel :

(1) Détection des pannes

Redis Cluster détectera si un nœud est en panne en collectant des informations de battement de cœur entre les nœuds.

(2) Basculement

Lorsqu'un nœud maître tombe en panne, Redis Cluster élira un nœud esclave comme nouveau nœud maître et transférera automatiquement les données de l'ancien nœud maître vers le nouveau nœud maître. Dans le même temps, Redis Cluster mettra également à jour la distribution des données entre chaque nœud.

Résumé

Redis, en tant qu'infrastructure de la plateforme de traitement des flux de messages, doit maintenir une haute disponibilité et des capacités de basculement. Lors de l'utilisation de Redis Sentinel ou Redis Cluster, nous devons prendre en compte des facteurs tels que le nombre de nœuds, la configuration des nœuds maître-esclave, le partage automatique des données et les stratégies de gestion des erreurs telles que la détection des erreurs et le basculement pour garantir le fonctionnement stable de 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!

Déclaration:
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