Apigee Edge proporciona almacenamiento en caché para la persistencia de datos en todas las solicitudes. Cuando se reciben los datos de la API, se almacenan en la caché durante un breve período y, luego, se borran. La cantidad máxima de tiempo que se conserva un dato antes de que se borre se denomina vencimiento o tiempo de actividad (TTL) de la caché. Cada caché tiene un TTL predeterminado, pero, en algunos casos, es posible que debas cambiar el valor del TTL para mejorar el rendimiento de la API.
Tipos de caché
Los datos de la API se almacenan en dos tipos de caché:
- Nivel 1 (L1): Es la caché en memoria, que tiene un acceso más rápido, pero menos capacidad de almacenamiento disponible.
- Nivel 2 (L2): Es la caché persistente en un almacén de datos de Cassandra, que tiene un acceso más lento, pero más capacidad de almacenamiento disponible.
Cuando una entrada de datos en la caché L1 alcanza el TTL de L1, se borra. Sin embargo, se conserva una copia de la entrada en la caché L2 (que tiene un TTL más largo que la caché L1), donde sigue siendo accesible para otros Message Processors. Consulta Niveles de caché persistente y en memoria para obtener más detalles sobre la caché.
TTL máximo de L1
En Edge para nube privada, puedes establecer el TTL máximo de la caché L1 para cada Message Processor con la propiedad Max L1 TTL (conf_cache_max.l1.ttl.in.seconds).
Una entrada en la caché L1 vencerá después de alcanzar el valor de Max L1 TTL y se borrará.
Notas:
- De forma predeterminada, el TTL máximo de L1 está inhabilitado (con el valor
-1), en cuyo caso el TTL de una entrada en la caché L1 se determina por la configuración de vencimiento de la política PopulateCache (para la caché L1 y L2). - El TTL máximo de L1 solo tiene efecto si su valor es menor que el vencimiento general de la caché.
Configura el TTL máximo de L1
Puedes establecer el TTL máximo de L1 en un Message Processor de la siguiente manera:
- Abre el
archivo de configuración
/opt/apigee/customer/application/message-processor.propertiesen un editor. Si el archivo no existe, créalo. - Establece la propiedad TTL máximo de L1 en el valor deseado:
conf_cache_max.l1.ttl.in.seconds = 180
Recomendamos el valor
180segundos. - Asegúrate de que el archivo de propiedades sea propiedad del usuario "apigee":
chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Reinicia el Message Processor:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Lineamientos para establecer el TTL máximo de L1
Cuando configures el TTL máximo de L1, ten en cuenta los siguientes lineamientos:
- Errores de RPC: Si notas errores de llamada de procedimiento remoto (RPC) entre
los Message Processors (MP),
en especial en varios centros de datos,
es posible que la caché L1 tenga entradas inactivas, que permanecerán inactivas hasta que se borren
de la caché L1. Si configuras el TTL máximo de L1 en un valor más bajo, se fuerza la eliminación de las entradas
obsoletas y se reemplazan por valores nuevos de la caché de L2 antes.
Solución: Disminuyeconf_cache_max.l1.ttl.in.seconds. - Carga excesiva en Cassandra: Cuando estableces un valor para el TTL máximo de L1, las entradas de caché L1
vencerán con más frecuencia,
lo que generará más errores de caché L1 y más aciertos de caché L2. Como la caché L2 se alcanzará con más frecuencia,
Cassandra tendrá una mayor carga.
Solución: Aumentaconf_cache_max.l1.ttl.in.seconds
Como regla general, ajusta el TTL máximo de L1 a un valor que equilibre la frecuencia de las fallas de RPC entre los MP con la carga potencial en Cassandra.
Te recomendamos establecer el valor de conf_cache_max.l1.ttl.in.seconds en, al menos,
180 segundos (3 minutos) para que el procesamiento se ejecute sin problemas.