Apigee Edge fournit une mise en cache pour la persistance des données entre les requêtes. Lorsque des données d'API sont reçues, elles sont stockées dans le cache pendant une courte période. puis supprimé. Durée maximale de conservation d'une donnée avant sa suppression est appelée expiration, ou valeur TTL (Time To Live), du cache. Chaque cache possède une valeur TTL par défaut, mais dans certains cas, vous devrez peut-être modifier la valeur TTL pour améliorer les performances de l'API.
Types de cache
Les données de l'API sont stockées dans deux types de cache:
- Niveau 1 (L1): cache en mémoire, qui a un accès plus rapide, mais moins d'espace disponible capacité.
- Niveau 2 (L2): cache persistant dans un datastore Cassandra dont la mais une plus grande capacité de stockage disponible.
Lorsqu'une entrée de données du cache L1 atteint la valeur TTL L1, elle est supprimée. Toutefois, la copie de l'entrée est conservée dans le cache L2 (dont la valeur TTL est plus longue que le cache L1) ; où il reste accessible aux autres processeurs de messages. Consultez la section Stockage en mémoire et des niveaux de cache persistants pour en savoir plus sur le cache.
Valeur TTL L1 maximale
Dans Edge pour Private Cloud, vous pouvez définir la valeur TTL maximale du cache L1 pour chaque message
processeur à l'aide de la propriété TTL L1 maximale (conf_cache_max.l1.ttl.in.seconds
).
Une entrée du cache L1 expirera une fois que la valeur TTL maximale L1 aura été atteinte et sera supprimée.
Remarques :
- Par défaut, la valeur TTL L1 maximale est désactivée (avec la valeur
-1
), auquel cas la valeur TTL d'une entrée du cache L1 est déterminée par la règle PopulateCache <ph type="x-smartling-placeholder"></ph> d'expiration de l'espace de stockage (pour le cache L1 et L2). - La valeur TTL L1 maximale n'a d'effet que si sa valeur est inférieure à la date d'expiration globale du cache.
Définir la valeur TTL L1 maximale
Vous pouvez définir la valeur TTL L1 maximale sur un processeur de messages comme suit:
- Ouvrez le
fichier de configuration
/opt/apigee/customer/application/message-processor.properties
dans un éditeur. Si le fichier n'existe pas, créez-le. - Définissez la propriété TTL L1 max. sur la valeur souhaitée:
conf_cache_max.l1.ttl.in.seconds = 180
Nous vous recommandons de définir la valeur
180
secondes. - Assurez-vous que le fichier de propriétés appartient à "apigee" utilisateur:
chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Redémarrez le processeur de messages:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Consignes pour définir la valeur TTL L1 maximale
Lorsque vous définissez la valeur TTL L1 maximale, tenez compte des consignes suivantes:
- Échecs RPC:si vous remarquez des défauts d'appel de procédure à distance (RPC) entre
processeurs de messages (MP) :
en particulier dans plusieurs centres de données,
il est possible que le cache L1 contienne des entrées obsolètes, qui le resteront jusqu'à ce qu'elles soient supprimées
du cache L1. Si vous définissez une valeur TTL L1 maximale sur une valeur inférieure,
les entrées obsolètes doivent être supprimées plus tôt et remplacées par de nouvelles valeurs du cache L2.
Solution:diminuez le nombre deconf_cache_max.l1.ttl.in.seconds
. - Charge excessive sur Casandra:lorsque vous définissez une valeur pour la valeur TTL L1 maximale, les entrées de cache L1
expireront plus souvent,
ce qui entraîne davantage de défauts
de cache L1 et de succès de cache L2. Étant donné que le cache L2
est plus souvent utilisé,
La charge de Cassandra augmente.
Solution:augmenter lesconf_cache_max.l1.ttl.in.seconds
En règle générale, régler la valeur TTL maximale L1 sur une valeur qui équilibre la fréquence des défauts RPC entre les MP avec la charge potentielle sur Cassandra.
Nous vous recommandons de définir la valeur de conf_cache_max.l1.ttl.in.seconds
sur au moins
180
secondes (3 minutes) pour garantir le bon déroulement du traitement.