Configura el vencimiento de la caché L1 en un procesador de mensajes

Apigee Edge proporciona almacenamiento en caché para la persistencia de datos en todas las solicitudes. Cuando se reciben datos de la API, se almacenan en la caché durante un período breve y, luego, se borran. La cantidad máxima de tiempo que se conserva un dato antes de borrarse 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 de 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): Caché en memoria, que tiene un acceso más rápido, pero menos capacidad de almacenamiento disponible.
  • Nivel 2 (L2): 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 L1, se borra. Sin embargo, se guarda una copia de la entrada en la caché L2 (que tiene un TTL más largo que la caché L1), donde otros procesadores de mensajes aún pueden acceder a ella. Consulta Niveles de caché persistente y en la memoria para obtener más detalles sobre la caché.

TTL L1 máximo

En Edge para la nube privada, puedes establecer el TTL máximo de la caché L1 para cada procesador de mensajes mediante la propiedad TTL L1 máxima (conf_cache_max.l1.ttl.in.seconds). Una entrada en la caché L1 vencerá después de alcanzar el valor de TTL máximo de L1 y se borrará.

Notas:

  • De forma predeterminada, el TTL de L1 máx. está inhabilitado (con el valor -1), en cuyo caso el TTL de una entrada en la caché L1 se determina mediante la configuración de vencimiento de la política ProguardCache (para caché L1 y L2).
  • El TTL de L1 máx. solo tiene un efecto si su valor es menor que el vencimiento general de la caché.

Establece el TTL de L1 máximo

Puedes configurar el TTL L1 máximo en un procesador de mensajes de la siguiente manera:

  1. Abre el archivo de configuración /opt/apigee/customer/application/message-processor.properties en un editor. Si el archivo no existe, créalo.
  2. Establece la propiedad de TTL L1 máxima en el valor deseado:
    conf_cache_max.l1.ttl.in.seconds = 180

    Recomendamos el valor 180 segundos.

  3. Asegúrate de que el archivo de propiedades sea propiedad del usuario de “apigee”:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  4. Reinicia el procesador de mensajes:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Lineamientos para establecer el TTL L1 máximo

Cuando configures el TTL de L1 máximo, ten en cuenta los siguientes lineamientos:

  • Fallos de RPC: Si notas errores en las llamadas de procedimiento remoto (RPC) entre los procesadores de mensajes (MP), en especial entre 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. Configurar el TTL de L1 máximo en un valor más bajo fuerza las entradas inactivas a quitarse y reemplazarse con valores nuevos de la caché L2, antes.
    Solución: Disminuye conf_cache_max.l1.ttl.in.seconds.
  • Carga excesiva en Casandra: Cuando estableces un valor para el TTL de L1 máximo, las entradas de caché L1 vencen con mayor frecuencia, lo que genera más errores de caché L1 y más aciertos de caché L2. Como la caché de L2 tendrá mayor frecuencia, Cassandra incurrirá en una carga mayor.
    Solución: Aumentar conf_cache_max.l1.ttl.in.seconds

Como regla general, ajusta el TTL L1 máximo a un valor que equilibra la frecuencia de errores 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 seguir ejecutando el procesamiento sin problemas.