des solutions de mise en cache multi-niveaux (TMC)

Tout d'abord, l'amorce

Qu'est-ce que 1-1. TMC

TMC, qui est "cache multi-niveaux transparent (Transparent Cache multiniveau)", il y a des éloges pour les PaaS Toute l'équipe cache des applications dans les solutions de l'entreprise.

TMC En général, « des solutions de mise en cache distribués (tels que CodisProxy + Redis, le cas échéant les éloges de la recherche distribuée système de mise en cache zanKV) » base, ajoute les fonctionnalités suivantes:

  • Couche d'application Hot Spot de détection
  • La couche d'application de cache local
  • Le cache de la couche application des statistiques a frappé

La couche d'application pour aider à résoudre le problème de l'accès aux utilisations du cache chaud le processus se posent.

1-2. Pourquoi TMC

Utiliser le numéro de fournisseur d'électricité et le type d'entreprise a beaucoup de service de louange, les entreprises à l'occasion faire un peu de « pic des produits de base », activités « de promotion du commerce », conduisant à des « activités de marketing », « Détails du produit », « pour le commerce » et les applications de liaison apparaître hotspot Cache  La situation:

  • Temps d'activité, type d'activité, les campagnes d'information produit comme imprévisibles, entraînant un accès hotspot cache de circonstances imprévues à l'avance;
  • Pendant l'accès du cache chaud se produit, la couche d'application quelques points chauds * * pour accéder à une grande quantité de demande d'accès au cache: l'impact des systèmes de cache distribué, occupent une grande quantité de bande passante au sein du réseau, la couche d'application affecte finalement la stabilité du système;

Pour résoudre ces problèmes, nous devons être en mesure de trouver automatiquement un point chaud et les solutions de demande d'accès pré-cache chaud mis en cache localement dans la couche d'application, ce qui explique pourquoi généré TMC.

1-3. La douleur pointe des solutions de mise en cache multi-niveaux

Sur la base de la description ci-dessus, nous résumons les points suivants solution de mise en cache multi-niveaux  La nécessité de répondre aux besoins des points de douleur:

  • Hot spot de détection: comment trouver rapidement et avec précision à chaud * Touche d'accès *?
  • Cohérence des données: application pré-cache au niveau local, comment assurer la cohérence des données et le système de mise en cache distribuée?
  • L'effet de la vérification: comment rendre la vue couche d'application cache local taux de succès et d'autres données clés pour vérifier chaud l'effet de cache multi-niveaux?
  • Accès transparent: Comment réduire l'invasion de la solution globale des systèmes d'application, si un accès rapide et lisse?

TMC point focal au-dessus de la douleur, conçu et mis en uvre la solution globale. Pour soutenir la « détection Hot Spot » et « cache local », l'impact sur les services de mise en cache distribués en aval tout en réduisant l'accès aux points chauds, pour éviter d'affecter les performances et la stabilité des applications et services.

Deux, TMC architecture globale

TMC structure globale, comme indiqué ci-dessus, est divisé en trois couches:

  • couche de mémoire: kv base fournir une capacité de stockage de données, l'utilisation de différents services de stockage (CODIS / zankv / aérospike) pour différents scénarios d'affaires;
  • Couche Agent: fournit l'utilisation d'une entrée de cache unifiée et la couche d'application protocole de communication, les ours fonction de routage des données distribuées expéditeur niveau de segmentation de travail;
  • Couche d'application: fournit une application client unifiée pour utiliser le service, intégré dans « la détection de point chaud », « cache local » et d'autres fonctions, la transparence des entreprises;

Benpian focalisé sur la couche d'application client « sonde chaude », la fonction « cache locale ».

Trois, cache local TMC

3-1. Comment transparent

TMC est de savoir comment réduire l'intrusion d'applications d'entreprise, de sorte que l'accès transparent?

Pour la société de services d'application Java, divisé en deux catégories sur l'utilisation du cache du client:

  • paquet de base, en utilisant le code de service RedisTemplate d'écriture;
  • Basé youzan.framework.redis package, en utilisant le code de service d'écriture RedisClient;

L'utilisation ou l'autre des scénarios ci-dessus, Jedis objets finaux créés par des demandes de serveur proxy de cache JedisPool à faire l'interaction de la couche.

TMC sur l'emballage natif de classe JedisPool et Jedis faire la transformation, l'intégration dans JedisPool initialisation TMC « points chauds trouvés dans » + « cache local » fonctions logiques d'initialisation du package Hermes-SDK, le client Jedis et mise en cache interaction de la couche serveur proxy lorsque le premier interagissent Hermes-SDK avec un accès transparent au complet « sonde chaude » + de fonction « cache local ».

Pour les applications Java, il suffit d'utiliser une version spécifique du paquet Jedis-pot, sans modifier le code, vous pouvez accéder aux utiliser TMC « hot spots trouvés dans » fonction + « cache local », de sorte que l'intrusion minimale sur le système d'application.

3-2. Architecture globale

3-2-1. Module division

TMC configuration globale du cache local est divisé en modules suivants:

  • Jedis-client : Application Java accès direct interaction du serveur de cache avec la définition de l'interface native équivalent Jedis-client;
  • Hermes-SDK : Auto-développement « chaud + découverte cache locale » paquet fonctionnalité SDK, Jedis-client en interagissant avec ses capacités respectives d'intégration;
  • cluster de serveurs Hermes : Recevoir l'accès au cache de données Hermes-SDK pour l'état de détection de point chaud, la touche de raccourci pousse Hermes-SDK comme le cache local;
  • clusters de cache : Par la couche d'agent et la couche de stockage, cache distribué pour fournir un pour le client d'application entrée de service unifié;
  • Les composants de base : Groupe ETCD, centre de distribution Apollo pour TMC pour fournir une capacité "push de cluster" et "configuration unifiée";

3-2-2. Les processus de base

1) La valeur de clé acquisition

  • Java appels d'application Jedis-client  Interface obtenir la valeur de clé de cache, Jedis-client  demande Hermes-SDK  La clé est de savoir si le courant touche de raccourci ;
  • pour touche de raccourci  directement à partir de Hermes-SDK  module chaud pour l'acquisition de la valeur de la valeur de touche de raccourci dans le cache local, de ne pas visiter clusters de cache  De sorte que les demandes d'accès à l'avant dans une couche d'application;
  • pour non touche de raccourci  , Hermes-SDK  rappel appelable passera Jedis-client  Native Interface de clusters de cache  Obtenez la valeur de la valeur;
  • pour Jedis-client  Chaque demande d'accès valeur clé, Hermes-SDK  Module de communication par qui l'accès des événements clés  Asynchronous rapporté à cluster de serveurs Hermes  , De sorte qu'une « sonde chaude » en fonction des données communiquées;

2) La valeur de clé expire

  • Java appels d'application Jedis-client  L'ensemble () del () expireront () peut provoquer une défaillance lorsque la valeur de clé correspondant à l'interface, Jedis-client  Il sera appel synchrone Hermes-SDK  La méthode invalide () pour informer son événement « valeur clé non valide »;
  • pour touche de raccourci  , Hermes-SDK  Le premier module de touches valeurs mises en cache localement valeur invalide, afin d'obtenir des données locales une forte cohérence . Bien que le module de communication asynchrone sera l'événement « valeur de l'échec » par groupe ETCD  Poussé à d'autres Java Application Clusters Hermes-SDK noeud;
  • autres Hermes-SDK Après réception du nud de module de communication « valeur clé non valide » événement, appelle la valeur de la valeur clé du module chaud dans l'échec de cache local pour obtenir les données du cluster L'accord final ;

3) points chauds trouvés

  • cluster de serveurs Hermes  Continuer de recueillir Hermes-SDK rapporté l'accès des événements clés Pour les données d'accès au cache de différentes applications d'entreprise analyse périodiquement grappe (3s une fois) et le calcul, pour détecter les applications d'entreprise dans un cluster touche de raccourci liste;
  • pour détecter touche de raccourci liste, cluster de serveurs Hermes  il par groupe ETCD  Poussé aux différents groupes d'applications d'entreprise Hermes-SDK  Un module de communication pour notifier touche de raccourci Liste cache local;

4) agencé pour lire

  • Hermes-SDK  Au démarrage et pendant le fonctionnement sera de Apollo Center Configuration  Lit les informations de configuration d'intérêt pour eux (par exemple: Démarrer une configuration fermée, la configuration de la liste noire et blanche, adresse ETCD ...);
  • cluster de serveurs Hermes  Au démarrage et pendant le fonctionnement sera de Apollo Center Configuration  La lecture des informations de configuration d'intérêt pour eux (par exemple: une liste des applications métier, la configuration de seuil chaude, adresse ETCD ...);

3-2-3. Stabilité

la stabilité TMC du cache local dans les domaines suivants:

  • données asynchrones: rapports de Hermes-SDK  La technologie rsyslog utilisation à « événements d'accès principaux » de rapports asynchrones, ne bloquent pas le trafic;
  • Enfilez module de communication de séparation: Hermes-SDK  Le module de communication utilise un pool de threads séparés + attente limitée, assurer que les rapports d'événements écoute et opérations d'E / S et fil isolé d'affaires d'exécution, même si le sexe anormal inattendu n'affectera pas les fonctions commerciales de base;
  • Contrôle du cache: Hermes-SDK  module chaud limite de la taille du cache locale a été le contrôle, de sorte que la mémoire occupée par plus de 64 Mo (LRU), éliminer la possibilité de débordement mémoire tas JVM;

3-2-4 Conformance

TMC cache local de cohérence dans les domaines suivants:

  • Hermes-SDK  module de cache Hot touche de raccourci  Les données, la grande majorité des données clés de la non-hotspot clusters de cache  stockage;
  • touche de raccourci  Lorsque le changement de valeur a conduit à l'échec, Hermes-SDK  échec de la synchronisation de cache local pour assurer uniforme fort local ;
  • touche de raccourci  Lorsque le changement de valeur a conduit à l'échec, Hermes-SDK  par groupe ETCD  événements de diffusion, l'échec asynchrone des applications d'entreprise groupent cache local à d'autres nuds, assurant Cluster accord final ;

Quatre, points chauds TMC trouvés

4-1. Processus général

processus de découverte de point chaud TMC est divisé en quatre étapes:

  • collecte de données : Collectionner Hermes-SDK  Rapporté événements d'accès clés;
  • Fenêtre coulissante thermique : Pour chaque application clé, toute l'heure d'entretien, la chaleur accès aux enregistrements en fonction de l'heure de la fenêtre coulissante;
  • convergence chaleur : Tous App clé de < clé, la chaleur > Trier résumé sous forme de chaleur;
  • Détection Hot Spot : L'application, sélectionnez TopN chaud de la chaleur de la commande Touche les résultats sommaires, poussé à Hermes-SDK ;

4-2. Collecte des données

Hermes-SDK  Par la rsyslog locale l'accès des événements clés  Mettre dans un format de protocole kafka  , cluster de serveurs Hermes  Chaque noeud consommation kafka nouvelles, l'accès en temps réel l'accès des événements clés .

format de protocole d'événement d'accès est la suivante:

  • appName: nud de cluster appartient aux applications d'entreprise
  • UniqueKey: principales applications d'entreprise à des événements clés d'accès
  • Le temps d'apparition d'événements d'accès principales applications d'entreprise: sendTime
  • poids: l'accès aux applications d'entreprise de valeur à des événements clés d'accès

cluster de serveurs Hermes  Le noeud recueilli l'accès des événements clés  Stocké dans la mémoire locale, la structure de données de mémoire Carte < String, Carte < String, LongAdder > > , Cartographiées à l'entreprise correspondante signifie Carte <  appName, Carte <  UniqueKey, de la chaleur > > .

3.4. Fenêtre coulissante Heat

4-3-1. Heure fenêtre coulissante

cluster de serveurs Hermes  Les nuds, chaque clé de chaque application, le maintien d'un ronde du temps :

  • Party Time Round 10 tranche de temps , La fiche de chaque tranche de temps correspondant au nombre total d'accès à la clé actuelle période de 3 secondes;
  • Le temps d'enregistrement de 10 tranches de temps roue des moyens d'accumulation que le nombre total de la clé actuelle pour accéder à la durée de 30 secondes à partir de la fenêtre de temps en cours;

Mission de cartographie 4-3-2

cluster de serveurs Hermes  Noeuds pour chacun produit un toutes les 3 secondes App Mission de cartographie  , Désigné dans le noeud « pool de threads cachemap » la mise en uvre. Mission de cartographie  Il se lit comme suit:

  • L'application actuelle, de la carte <  appName, Carte <  UniqueKey, de la chaleur > > AppName supprimé correspondante Carte Plan <  UniqueKey, de la chaleur > > ;
  • Carte Traversal <  UniqueKey, de la chaleur > > La clé, qui est mémorisé pour chaque clé dont la chaleur enlevée ronde du temps  Correspondant à la tranche de temps;

4-4. Convergence chaleur

Après avoir terminé la deuxième étape « fenêtre coulissante chaleur » Mission de cartographie  Poursuivre les travaux « convergence de chaleur » sur l'App actuelle:

  • App traversé la clé, chaque touche ronde du temps  La chaleur agrégées (à savoir, dans les 30 secondes de la chaleur totale de la fenêtre) pour donner le temps de détection La fenêtre coulissante chaleur totale ;
  • volonté <  clé, fenêtre coulissante chaleur totale >  Way dans Redis ensemble de services triées de stockage, à savoir, Résultats de la convergence chaleur ;

4-5. Hot Spot Detection

  • Quelques pas en avant, Toutes les 3 secondes  temps Mission de cartographie  Exécution, résultant en une heure pour chaque volonté App Résultats de la convergence chaleur  ;
  • cluster de serveurs Hermes  Le noeud « Hot spot de détection » pour chaque application, il suffit d'une récente cyclique Résultats de la convergence chaleur  Retirer la chaleur TopN atteint la liste des clés de seuil, cette détection peut être obtenue liste des clés Hot ;

TMC processus global a été trouvé chaud comme indiqué ci-dessous:

4-6. Résumé des caractéristiques

4-6-1. En temps réel

Hermes-SDK Sur la base de rapports en temps réel rsyslog + kafka l'accès des événements clés . Mission de cartographie  3 secondes pour effectuer un cycle « fenêtre glissante de chaleur » + « convergence de chaleur », et quand il y a l'accès aux scènes Hot  Jusqu'à 3 secondes à l'événement correspondant à la détection touche de raccourci .

4-6-2. Précision

la clé Résultats de la convergence chaleur Rassemblés par le la « roue de temps sur la base d'une mise en uvre de fenêtre coulissante, » refléter de manière relativement précise la répartition actuelle et la récente visite a eu lieu.

4-6-3. Évolutivité

cluster de serveurs Hermes  Apatrides noeuds, les noeuds peuvent être basés sur le nombre d'échelle partition kafka.

processus de « fenêtre coulissante Heat » + « de convergence de la chaleur » est basé sur le nombre d'App, multifile dans une seule extension de noeud.

Cinq, TMC effet réel

5-1. Deft une entreprise de marketing des produits de base particulier

Il y a des entreprises engagées dans des activités comme une marchandise par plate-forme adroite de diffusion, ce qui en peu de temps la marchandise est produit un accès centralisé d'accès aux points chauds, les points chauds lors d'une visite aux activités réelles des données TMC enregistrement de performance comme suit:

5-1-1. Demande et graphique de taux d'utilisation du cache de l'application de base A

* La ligne bleue sur le graphique pour obtenir un numéro d'opération cache hit TMC des appels à la méthode cache local Application Clusters get () pour accéder au numéro de cache * ligne verte sur la carte

* L'image montre un graphique du rapport local dans le cache

On peut voir dans les demandes de cache d'événements et la quantité de volume frappé cache local a augmenté de manière significative, un taux local dans le cache de près de 80% (soit 80% du cache cluster d'applications demandes de requête sont TMC mises en cache interceptés au niveau local).

5-1-2. Effet d'accélération du cache chaud pour l'accès aux applications

* La photo montre l'application d'interface courbe QPS

* La photo montre l'application d'interface RT Curve

Comme on peut le voir la quantité interface d'application demandé lors de l'événement ont considérablement augmenté en raison de l'effet de l'application RT Interface TMC mises en cache localement, mais a diminué.

effet TMC pendant une partie de l'application 5-2. Afficher onze bis

5-2-1. Domaine des marchandises effet de l'application de base

5-2-2. Domaine d'activité effet de l'application de base

Six, les perspectives de la fonction TMC

En Zambie, TMC est actuellement le centre des marchandises, la logistique, les centres d'inventaire, des campagnes de marketing, centrées sur l'utilisateur, la passerelle et messagerie, et d'autres modules d'applications de base, les applications suivantes sont également des applications d'accès.

TMC, les compétences de base « détection de point chaud » + « cache locale », mais offre également des options de configuration flexibles pour les services d'application, les services d'application peuvent être associés à la situation commerciale réelle dans le « nombre clé de sondes de points chauds » « seuil de points chauds », « points chauds liste noire « dimensions librement configurables afin d'obtenir de meilleurs résultats.

Schéma de mise en uvre du service Mock dubbo basé sur un proxy dynamique
Précédent
anomalie gestion prometheus-printemps-démarrage démarrage des alertes de message de notification
Prochain
Conception de pot général, la configuration dynamique, des composants du système chorégraphié centre de mission basé sur le membre
Système de surveillance de api --apimonitor
La prochaine fois que je ne peux pas tuer changer facilement le serialVersionUID
Code faible pour JEPaaS la plate-forme de développement rapide
Lien complet de suivi: Aperçu du programme et comparaison | vraiment sec
hanbo-push poussée de message distribué, service de messagerie instantanée
Ali Grand Dieu partage API d'application Service Gateway dans la micro-architecture
projet mallcloud-plateforme basée sur un centre commercial construit nuage springboot
Mybatis comprend les neuf modèles de conception, vous connaissez un peu?
ouragan couteau de mouton Dominer Genting Eich norme Ranger Polar
Double servir cinq forte épée à une main inventaire forte promesse Ji dominent
gun vampire tout-puissant dans le courant dominant de la science et de la technologie veuve du Dragon encore plus puissant