Le principe Redis Cluster Cluster

A, Redis Cluster architecture

Redis Redis Cluster a été lancé dans la version 3.0 des solutions distribuées. Une pluralité Redis Redis l'intégralité des noeuds de grappe. données disjoints entre les différents noeuds, chaque noeud correspondant à une pluralité de morceaux de données. La partie de noeud dans le noeud de sauvegarde, par le biais de la réplication en attente pour assurer la cohérence des données. Un noeud maître peut avoir une pluralité de noeuds esclaves, le noeud maître fournit des services de lecture et d'écriture, en fournissant une lecture à partir du noeud de service.

1.1 mécanisme de communication interne

Redis Cluster noeuds entre les informations interactif à travers le cluster Bus Redis. Redis configuration cluster informations de chaque nœud dans le dossier du cluster: Le numéro de version Epoch, les données d'état de cluster tel Etat.

  Chaque nœud Redis cluster sont conservés groupe Structure perspective de nœud. Il décrit comment les données sont fragmentées, dans le nœud maître et esclave, et la cohérence de la configuration du cluster d'informations que le numéro de version par Epoch, tout en contrôlant le processus de migration des données et le basculement.

1,2 Redis Cluster au centre
 dans Redis cluster, chaque noeud maître esclave principe a un ou plusieurs nœuds. Tous les nœuds du cluster peut lire et données d'écriture, priorités mal placées. Chaque noeud maître de communication interne, la réplication asynchrone à partir du protocole inter-noeud Goossip. Cependant, la réplication asynchrone peut entraîner une perte de données dans certaines circonstances spécifiques. Ainsi, Redis Cluster ne garantit pas la cohérence des données solides.

conception Redis Cluster de l'idée de base: diviser les données, au centre.

Deux, Redis Cluster morceau de données

2.1 Règles de fragmentation des données

Dans un cluster distribué, comment faire en sorte que la même demande tombe sur la même machine, et l'arrière de la machine peut être aussi des groupes de demande de partage, nécessitent l'utilisation d'une stratégie raisonnable, il existe deux méthodes traditionnelles:
1, l' algorithme de hachage: un nombre fixe de noeuds lorsqu'un noeud tombe en panne, le tampon de reconstruction.
2, algorithme de hachage cohérente: lorsqu'un nœud tombe en panne, seules les données dans le nœud affecté. La pression sera enfoncé dans la base de données.
  Lorsqu'il est utilisé Redis fente de hachage Cluster Algorithm partiellement affectée par le nombre de noeuds et les noeuds fixes peuvent être configurés à la carte pour éviter modulo inflexibilité et le hachage cohérent.
  Redis Cluster toutes les données distribuées en conformité avec l'algorithme de hachage fente de 16384 [0-16383] Le hachage des fentes ci - dessus, les rainures de hachage distribuée sur chaque noeud, chaque noeud conserve sa propre rainure de hachage.

2.2 itinéraires clients

Lorsque la fente de hachage accès clé client n'est pas dans le nœud actuel, commande retourne Redis cluster déplacés et informent les informations de routage appropriée. Le client reçoit lors de son déplacement des commandes, les demandes Redis à nouveau et met à jour ses informations de cache de routage interne.

  Lorsque Redis Cluster redistribué dans les données, Redis Cluster , utilisez la commande pour demander la redirection. Parce que la redistribution des données, les données peuvent être un hachage fentes existent dans les anciens et les nouveaux nœuds. Alors demandez seulement réoriente et ne sera pas mise à jour les informations de routage.

2.3 pièces de migration de données

Quand il y a un nouveau nœud maître rejoint le cluster, le nœud est supprimé du cluster ou parce que la répartition inégale des données nécessaires à la redistribution des données, il est nécessaire de migrer la tranche de données. migration de données est divisé en trois étapes:
1, la commande de changement d'état transmis au noeud cible, correspondant à la valeur de hachage de l'état de la fente est réglée à l'importation du noeud cible.
2, une commande de changement d'état au noeud de source de transmission, le noeud de source correspondant à l'état de la fente de hachage à la migration.
3, pour l' ensemble de la rainure de clé de hachage sur le noeud source, le noeud de source transmet une commande à migrer, pour informer la clé de noeud de source correspondant au noeud de destination.
  Lorsque l'état est fixé à la migration de noeud de source. A cette époque diffèrent dans un état normal, et le service fourni par le noeud source:
. 1, si la clé d'accès client n'a pas été déplacé hors du traitement normal de la clé,
2, si la clé a été déménagé ou la clé n'existe pas, il retournera le DEMANDEZ client, autorisé à passer à un traitement de noeud d'information cible;
  lorsque l'état du noeud cible à l' importation. Il indique que l'emplacement correspondant est déplacé vers le noeud cible. Differ dans des circonstances normales et le noeud cible:
1, la fente pour tous les non demander des opérations de saut, le noeud cible ne fonctionne pas, mais à travers déplacé de sorte que saut client au nœud source à effectuer. Cela garantit que la même clé est toujours exécutée au niveau du nœud source avant la migration. Après le noeud cible de migration est toujours exécutée, éliminant ainsi le double du conflit.
2, le processus de migration, la clé nouvellement ajoutée sera exécutée au niveau du noeud de destination, le nœud source ne sera pas ajouter la clé. Faire des limites de migration doivent être à la fin d'un certain temps.

Un processus de migration seule clé peut être fait par commande migrate d'atomisation. Pour le noeud depuis le noeud source et le noeud de destination, le maître est préparé par la copie, des additions et des deletions pour obtenir des données. Lorsque toutes les migrations de clé est complète, fragment client fourni par le setslot de noeud de destination Redis de commande Cluster, un mouvement pour contenir la fente. Le processus d'installation Epoch incrément, et la dernière valeur du cluster. Ensuite, en détectant les uns les autres, se propager à d'autres nœuds du cluster.

Trois, Redis Failover Cluster

3.1 noeud jugement d'échec
En   premier lieu , Redis informations cluster dans chaque nœud , il tous les nœuds du cluster. Vous pouvez reliés entre eux par le noeud de détermination ping-pong entre eux. Si plus de la moitié des noeuds ping d' un noeud quand il n'y a pas de réponse, il considère le nœud de cluster tombe en panne.

3.2 élections esclaves
  lorsque le nœud de cluster principal est reconnu comme il déclenche, état d' échec d' une campagne à partir du nœud, s'il y a plusieurs noeuds esclaves, les nouvelles données de noeud est plus susceptible de lancer la campagne. Autre nœud maître du cluster renvoie une réponse.

3.3 changements structurels
  lorsque la campagne a reçu plus de la moitié du premier accord de noeud, sera le nouveau nœud principal à partir du nœud. Cette fois -ci sera la dernière diffusion de messages par Epoch PONG, afin que d' autres informations Redis de mise à jour du cluster cluster le plus rapidement possible. Lorsque les récupère de noeud primaire d' origine de l' ajout rétrogradé à un noeud.

Quatre, Redis Cluster haute disponibilité

4.1 La protection du noeud maître
  lorsqu'un noeud du cluster de toute instance de temps d' arrêt, Redis Cluster sera réplique d'exemple non unique de la migration à partir d' une instance, devenir ce noeud à d' autres noeuds.
  Chaque noeud actif dans le cluster de telle sorte qu'au moins un esclave, ayant une telle grappe à haute disponibilité. Cluster juste besoin de garder 2 maître * + 1 noeuds, il peut être maintenu lorsque l' un d'un nœud tombe en panne, après une reprise disponibilité continue.

4.2 clusters échouent état
  Redis Cluster garantie les caractéristiques de base disponibles que lorsque certaines conditions sont identifiées comme échec:
1, un noeud maître et tout blocage de tous les nœuds, le cluster ne parviennent pas à entrer dans l'état.
2, si plus de la moitié du blocage primaire nœud de cluster jusqu'à, indépendamment du fait que le nœud dans l'état d' échec cluster.
3, le cas échéant du nœud de cluster principal blocage, et l'état actuel du nœud maître ne manque pas d'entrer dans le noeud du cluster.

Cette tension: https://yq.aliyun.com/articles/711825

Publié 88 articles originaux · louange gagné 49 · Vues 100 000 +

Je suppose que tu aimes

Origine blog.csdn.net/Diamond_Tao/article/details/99441680
conseillé
Classement