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

Apigee Edge proporciona almacenamiento en caché para la persistencia de datos entre las solicitudes. Cuando se reciben los datos de la API, se almacenan en la caché durante un período breve. y, luego, se borra. La cantidad máxima de tiempo que se conserva un dato antes de ser borrado 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 ese valor 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 ofrece acceso más rápido, pero menos almacenamiento disponible la capacidad de procesamiento.
  • Nivel 2 (L2): Caché persistente en un almacén de datos de Cassandra, que tiene una velocidad más lenta 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, un se guarda una copia de la entrada en la caché L2 (que tiene un TTL más largo que la caché L1), para que otros procesadores de mensajes puedan acceder a ella. Consulta Datos en memoria y persistentes para obtener más detalles sobre la caché.

TTL máximo de L1

En Edge para la nube privada, puedes establecer el TTL máximo de caché L1 para cada mensaje con la propiedad de TTL máximo L1 (conf_cache_max.l1.ttl.in.seconds). Una entrada de la caché de L1 caducará cuando alcance el valor máximo de TTL de L1 y se borrará.

Notas:

  • De forma predeterminada, el TTL máximo de L1 está inhabilitado (con el valor -1). en cuyo caso se determina el TTL de una entrada en la caché L1. según la configuración de la política la configuración de vencimiento (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é.

Establece el TTL máximo de L1

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

  1. Abre el 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 máximo L1 en el valor deseado:
    conf_cache_max.l1.ttl.in.seconds = 180

    Te recomendamos que el valor sea 180 segundos.

  3. Asegúrate de que el archivo de propiedades sea propiedad de “apigee” usuario:
    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 configurar el TTL máximo de L1

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

  • Errores de RPC: Si observas errores de llamada de procedimiento remoto (RPC) entre procesadores de mensajes (MP), especialmente 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. Establecer el TTL máximo de L1 en un valor más bajo fuerza una fuerza las entradas inactivas se quitarán y se reemplazarán por valores nuevos de la caché L2,
    Solución: Disminuir la conf_cache_max.l1.ttl.in.seconds
  • Exceso de carga en Casandra: cuando configuras un valor para Max L1 TTL, entradas de caché L1 caducarán con más frecuencia, lo que genera más errores de caché L1 y más aciertos de caché L2. Como la caché L2 se golpeará con más frecuencia, Cassandra tendrá una mayor carga.
    Solución: Aumentar el conf_cache_max.l1.ttl.in.seconds

Como regla general, ajustar el TTL máximo de L1 a un valor que equilibra la frecuencia de errores de RPC entre 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 siga funcionando sin problemas.