Vous consultez la documentation Apigee Edge.
Accédez à la
documentation**Apigee X**. info
Cette rubrique décrit le fonctionnement du cache dans des règles telles que la règle d'insertion du cache, règle LookupCache, règle InvalidateCache, et la règle de réponse du cache.
Caches partagés et d'environnement
Chaque règle de mise en cache que vous configurez peut utiliser l'un des deux types de cache suivants : un cache partagé inclus auquel vos applications ont accès et un ou plusieurs caches à portée d'environnement que vous créez.
-
Cache partagé : par défaut, vos proxys ont accès à un cache partagé dans
chaque environnement. Le cache partagé est adapté aux cas d'utilisation de base.
Vous ne pouvez utiliser le cache partagé qu'à l'aide de règles de mise en cache, et non de l'API de gestion. Pour qu'une règle de mise en cache utilise le cache partagé, omettez simplement l'élément
<CacheResource>de la règle. -
Cache d'environnement : si vous souhaitez configurer les propriétés du cache avec les valeurs de votre choix, vous pouvez créer un cache à portée d'environnement. Pour en savoir plus sur la création d'un cache, consultez la section
Créer et modifier un cache d'environnement.
Lorsque vous créez un cache d'environnement, vous configurez ses propriétés par défaut. Vous pouvez faire en sorte qu'une règle de mise en cache utilise le cache d'environnement en spécifiant le nom du cache dans l'élément
<CacheResource>de la règle.
À propos du chiffrement du cache
Edge pour le cloud public : le cache n'est chiffré que dans les organisations compatibles PCI- et HIPAA. Le chiffrement de ces organisations est configuré lors de la gestion de leurs comptes.
Niveaux de cache en mémoire et de cache persistant
Les caches partagés d'environnement sont basés sur un système à deux niveaux constitué d'un niveau en mémoire et d'un niveau persistant. Les règles interagissent avec ces deux niveaux sous forme de framework combiné. Edge gère la relation entre les niveaux.

-
Le niveau 1 est un cache en mémoire (L1) permettant un accès rapide. Chaque nœud de traitement de messages
dispose de son propre cache en mémoire (implémenté depuis Ehcache) pour une réponse plus rapide aux requêtes.
- Sur chaque nœud, un certain pourcentage de mémoire est réservé à l'utilisation par le cache.
- Lorsque la limite de mémoire est atteinte, Apigee Edge supprime les entrées de cache de la mémoire (bien qu' elles restent conservées dans le cache persistant L2) pour garantir que la mémoire reste disponible pour d'autres processus.
- Les entrées sont supprimées par ordre d'ancienneté d'accès, les plus anciennes étant supprimées en premier.
- Ces caches sont également limités par le nombre d'entrées dans le cache.
-
Le niveau 2 est un cache persistant (L2) sous le cache en mémoire. Tous les nœuds de traitement de messages partagent un datastore de mise en cache (Cassandra) pour conserver des entrées de cache.
- Les entrées de cache sont conservées ici même après leur suppression du cache L1, par exemple lorsque les limites en mémoire sont atteintes.
- Comme le cache persistant est partagé entre les processeurs de messages (même dans différentes régions), les entrées de cache sont disponibles quel que soit le nœud recevant une requête pour les données mises en cache.
- Seules les entrées d'une certaine taille peuvent être mises en cache, et d'autres limites s'appliquent. Consultez la section Gérer les limites de cache.
Vous pouvez également consulter la section Apigee Edge Caching In Detail, sur la communauté Apigee.
Comment les règles utilisent le cache
La section suivante explique comment Apigee Edge gère les entrées de cache pendant que vos règles de mise en cache fonctionnent.
- Lorsqu'une règle écrit une nouvelle entrée dans le cache (règle PopulateCache ou
ResponseCache) :
- Edge écrit l'entrée dans le cache L1 en mémoire uniquement sur le processeur de messages qui a traité la requête. Si les limites de mémoire du processeur de messages sont atteintes avant l'expiration de l'entrée, Edge supprime l'entrée du cache L1.
- Edge écrit également l'entrée dans le cache L2.
- Lorsqu'une règle lit à partir du cache (règle LookupCache ou ResponseCache) :
- Edge recherche d'abord l'entrée dans le cache en mémoire L1 du processeur de messages qui traite la requête.
- S'il n'y a pas d'entrée en mémoire correspondante, Edge recherche l'entrée dans le cache persistant L2.
- Si l'entrée ne se trouve pas dans le cache persistant :
- Règle LookupCache : aucune valeur n'est extraite du cache.
- Règle ResponseCache : Edge renvoie la réponse réelle de la cible au client et stocke l'entrée dans le cache jusqu'à son expiration ou son invalidation.
- Lorsqu'une règle met à jour ou invalide une entrée de cache existante (règle InvalidateCache, PopulateCache, ou ResponseCache) :
- Le processeur de messages qui reçoit la requête envoie une diffusion pour mettre à jour ou supprimer l'
entrée dans le cache L1 sur lui-même et tous les autres processeurs de messages dans toutes les régions.
- Si la diffusion réussit, chaque processeur de messages met à jour ou supprime l'entrée dans le cache L1.
- Si la diffusion échoue, la valeur de cache invalidée reste dans le cache L1 sur les processeurs de messages qui n'ont pas reçu la diffusion. Ces processeurs de messages contiendront des données obsolètes dans le cache L1 jusqu'à ce que la valeur TTL (Time To Live) de l'entrée expire ou soit supprimée lorsque la limite de mémoire du processeur de messages est atteinte.
- La diffusion met également à jour ou supprime l'entrée dans le cache L2.
- Le processeur de messages qui reçoit la requête envoie une diffusion pour mettre à jour ou supprimer l'
entrée dans le cache L1 sur lui-même et tous les autres processeurs de messages dans toutes les régions.
Gérer les limites de cache
Vous pouvez gérer certains aspects du cache par le biais des configurations. L'espace global disponible pour la mise en cache en mémoire est limité par les ressources système et n'est pas configurable. Les contraintes suivantes s'appliquent au cache :
- Limites de cache : des limites de cache diverses s'appliquent, telles que la taille du nom et des valeurs, le nombre total de caches, le nombre d'éléments dans un cache et l'expiration.
-
Cache en mémoire (L1) : les limites de mémoire de votre cache ne sont pas configurables. Elles sont définies par Apigee pour chaque processeur de messages qui héberge des caches pour plusieurs clients.
Dans un environnement cloud hébergé, dans lequel les caches en mémoire de tous les déploiements du client sont hébergés sur plusieurs processeurs de messages partagés, chaque processeur dispose d'un seuil de pourcentage de mémoire configurable sur Apigee pour garantir que la mise en cache ne consomme pas toute la mémoire de l'application. Lorsque le seuil est dépassé pour un processeur de messages donné, les entrées de cache sont évincées de la mémoire, en commençant par celles qui n'ont pas été utilisées depuis le plus longtemps. Les entrées évincées de la mémoire restent dans le cache L2 jusqu'à leur expiration ou leur invalidation.
- Cache persistant (L2) : les entrées évincées du cache en mémoire restent dans le cache persistant en fonction des paramètres de valeur TTL (Time To Live) configurables.
Optimisations configurables
Le tableau suivant répertorie les paramètres que vous pouvez utiliser pour optimiser les performances du cache. Vous pouvez spécifier des valeurs pour ces paramètres lorsque vous créez un cache d'environnement, comme décrit dans la page Créer et modifier un cache d'environnement.
| Paramètre | Description | Notes |
|---|---|---|
| Expiration | Spécifie la valeur TTL des entrées de cache. | Aucune |