système de cluster Redis

1. Le concept de cluster

1.1 Qu'est-ce qu'un groupe
同一个业务,部署在多个服务器上(不同的服务器运行同样的代码,做同一件事情)。
1.2. Pourquoi groupe
  • Prévenir point de défaillance unique
  • Le traitement simultané élevé - trop de requêtes un serveur ne peut pas gérer
  • Traitement de grandes quantités de données (problème en expansion) - trop de mémoire d'un serveur ne peut pas gérer les données
  • améliorer l'efficacité
1.3. Les caractéristiques et les capacités du cluster

Les clusters fournissent deux des caractéristiques suivantes:

  • Évolutivité - la performance du service de cluster ne se limite pas à une seule entité, la nouvelle entité de service peut être ajouté dynamiquement au cluster, améliorant ainsi les performances du cluster. serveur add Dynamiquement
  • Haute disponibilité - entité de service cluster redondant par le client de facilement rencontré Avertissement hors de service. Dans un cluster, le même service peut être fourni par plusieurs entités de service. Si une entité de service échoue, une autre entité de service prendra en charge l'échec de l' entité de service. Les clusters fournissent des services d'une mauvaise entité pour restaurer la fonction à une autre entité de service améliore la disponibilité des applications
    lors de l' accès au serveur a raccroché, le cluster peut être utilisé normalement la capacité de trouver la quantité de serveurs continuent de fournir des serveurs.

Pour évolutivité et une haute disponibilité, deux groupes doivent avoir les capacités suivantes:

Équilibrage de charge - L'équilibrage de charge peut une répartition plus équilibrée des tâches à l'informatique et les ressources du réseau dans un environnement en cluster.

Erreur de récupération - pour une raison quelconque, les ressources nécessaires pour accomplir une tâche échoue, les autres ressources de service pour effectuer la même entité tâche alors accomplir la tâche. Cela ne peut pas travailler en raison des ressources à une autre entité ressources d'une entité pour compléter la tâche de continuer processus transparent est appelé récupération d'erreur.

1.4. Similitudes distribuées et les différences et les clusters?

Le même point:

Ils sont un traitement très simultané et nécessitent plusieurs serveurs en même temps. En même temps, il est généralement distribué et regroupés dans un seul système.

différences:

Distribué dans différents serveurs gérer les affaires différentes. Et quand même entreprise de traitement du cluster.

Distribué Figure:Insérer ici l'image Description

carte cluster:Insérer ici l'image Description

2.Redis sélection du programme de cluster

2.1. La réplication maître-esclave

Schéma d'analyse:Insérer ici l'image Description

Avantages:
résoudre le problème de la haute concurrence

inconvénients:

  1. Grande empreinte mémoire - le même contenu de la vente primaire à l'intérieur
  2. Si Redis service principal suspendu au serveur principal ne prendra pas l'initiative d'augmenter, et si cela est fait, vous devez ajouter des composants supplémentaires tels que keepalvie (bascule automatiquement du primaire)
  3. Redis expansion et plus de problèmes

2.2. Mode Sentinel

Redis 2.8 fournitSentinel Outilarrivant Surveillance du système automatiséetrécupération de défaillance.

Schéma d'analyse:

Insérer ici l'image Description
avantages:

  1. Résoudre le problème de la haute concurrence
  2. problème de commutation de veille résolu

inconvénients:

mémoire d'extension n'a pas été résolu

2.3.Redis-Cluster

Il a rejoint le mode cluster sur redis3.0, mis en œuvreRedis Distributed Storage, Que chaqueLe contenu des différents noeuds de stockage Redis.

utilisations Redis-clusterAucune structure centrale

Un concept de design: Mécanisme de stockage distribué - creux (Autrement dit, un conteneur pour le stockage de données)

Schéma d'analyse:

Insérer ici l'image Description

pénétration cache

Insérer ici l'image Description

  • Attacker données de requête fréquentes à un avec le logiciel inexistant? = Id-1 de données, les Redis ne pas exister, il n'y a pas Mysql, mais chaque fois que les demandes sont des demandes de Mysql, résultant en une grande pression de Mysql

== == Solutions

  • Augmentation vérification de la demande: Si les paramètres ne sont pas retour direct légitime un message d'erreur.
  • interceptent fréquemment demandé: adresse ip autant de demandes formulées dans 1s, définissez la liste noire.
  • Selon la pensée logique métier: Pouvez-vous ajouter une vérification d'identité ou de vérification de code d'authentification
  • Un magasin de données n'existe pas dans la Redis clé nulle, et régler l'heure d'expiration

répartition cache

Insérer ici l'image Description

  • Répartition du cache (la même données) fait référence à la base de données de cache, mais pas les données existantes (généralement le temps de cache expire), puis en raison du nombre particulièrement élevé d'utilisateurs simultanés, alors que les données du cache de lecture ne se lit pas, il est en même temps à la base de données lire les données, provoquer une base de données pour augmenter la pression du moment, ce qui entraîne une pression excessive.

== == Solutions

  • (Key) définir le cache en permanence cache
  • blocs de code, plus mutex: Lorsqu'une demande est, passera par les données Redis requête Mysql, et mettra les données dans un Redis, les demandes suivantes peuvent obtenir les données de la Redis

avalanche

  • avalanche cache fait référence à de grandes quantités de données dans le délai d'expiration du cache, et la requête d'énormes quantités de données, base de données provoquant une pression excessive vers le bas même machine. Et le cache est différente répartition, répartition fait référence à la concurrence du cache vérifier les mêmes données, des données différentes cache avalanche a expiré, trouvent un grand nombre de données afin de vérifier la base de données.

    solution:

  • ÉCHÉANCE données mises en cache définies au hasard, afin d'éviter en même temps un grand nombre de données a expiré phénomène.

  • Si la base de données de cache est distribué le déploiement, les données de point chaud est réparti uniformément et fait différente base de données de cache.

  • L'ensemble de données à chaud expire jamais.

Publié 33 articles originaux · louanges gagnées 0 · Vues 408

Je suppose que tu aimes

Origine blog.csdn.net/weixin_45737653/article/details/104795268
conseillé
Classement