Objetos internos de la caché

Estás viendo la documentación de Apigee Edge.
Ve a la documentación de Apigee X.
info

En este tema, se describe el funcionamiento de la caché debajo de las políticas, como la política PopulateCache, la política LookupCache, la política InvalidateCache y la política ResponseCache.

Memorias caché compartidas y de entorno

Cada política de almacenamiento en caché que configures puede usar uno de los dos tipos de caché: una caché compartida incluida a la que tus aplicaciones tienen acceso y una o más cachés centradas en el entorno que crees.

  • Caché compartida: De forma predeterminada, tus proxies tienen acceso a una caché compartida en cada entorno. La caché compartida funciona bien para casos de uso básicos.

    Solo puedes trabajar con la caché compartida mediante políticas de almacenamiento en caché, no con la API de administración. Para que una política de almacenamiento en caché use la caché compartida, solo debes omitir el elemento <CacheResource> de la política.

  • Caché de entorno: Cuando quieras configurar propiedades de caché con los valores que elijas, puedes crear una caché centrada en el entorno. Para obtener más información sobre cómo crear una caché, consulta Crea y edita una caché de entorno.

    Cuando creas una caché de entorno, configuras sus propiedades predeterminadas. Para que una política de almacenamiento en caché use la caché del entorno, especifica el nombre de la caché en el elemento <CacheResource> de la política.

Información sobre la encriptación de caché

Edge para la nube pública: La caché se encripta solo en las versiones de organizaciones habilitadas de HIPAA y PCI. La encriptación de esas organizaciones se configura durante el aprovisionamiento de estas.

Niveles de caché persistente y en memoria

Las cachés compartidas y de entorno se basan en un sistema de dos niveles compuesto por un nivel de memoria y un nivel persistente. Las políticas interactúan con ambos niveles como un framework combinado. Edge administra la relación entre los niveles.

  • El nivel 1 es una caché en memoria (L1) para un acceso rápido. Cada nodo de procesamiento de mensajes (MP) tiene su propia caché en memoria (implementada desde Ehcache) para obtener una respuesta más rápida a las solicitudes.
    • En cada nodo, se reserva un porcentaje determinado de memoria para que lo use la caché.
    • A medida que se alcanza el límite de memoria, Apigee Edge quita las entradas de caché de la memoria (aunque permanecerán en la caché persistente L2) a fin de garantizar que la memoria permanezca disponible para otros procesos.
    • Las entradas se quitan en orden cronológico desde el último acceso, y las más antiguas se quitan primero.
    • Estas cachés también se limitan por la cantidad de entradas en la caché.
  • El nivel 2 es una caché persistente (L2) debajo de la caché en memoria. Todos los nodos de procesamiento de mensajes comparten un almacén de datos en caché (Cassandra) para conservar las entradas de caché.
    • Las entradas de caché persisten aquí incluso después de que se quitan de la caché L1, como cuando se alcanzan los límites de memoria.
    • Debido a que la caché persistente se comparte entre los procesadores de mensajes (incluso en diferentes regiones), las entradas de caché están disponibles independientemente del nodo que reciba una solicitud para los datos almacenados en caché.
    • Solo las entradas de un tamaño determinado pueden almacenarse en caché, y se aplican otros límites de caché. Consulta Administra límites de caché.

También te puede interesar Apigee Edge Caching In Detail, en la Comunidad de Apigee.

Cómo usan la caché las políticas

A continuación, se describe cómo Apigee Edge maneja las entradas de caché mientras tus políticas de almacenamiento en caché realizan su trabajo.

  • Cuando una política escribe una entrada nueva en la caché (política PopulateCache o ResponseCache):
    1. Edge escribe la entrada en la caché L1 en la memoria solo en el procesador de mensajes que manejó la solicitud. Si se alcanza la cantidad de memoria en el procesador de mensajes antes de que venza la entrada, el Edge quita la entrada de la caché L1.
    2. Edge también escribe la entrada en la caché L2.
  • Cuando una política lee de la caché (política LookupCache o ResponseCache):
    1. En primer lugar, Edge busca la entrada en la caché L1 en la memoria del procesador de mensajes que maneja la solicitud.
    2. Si no hay una entrada en la memoria correspondiente, Edge busca la entrada en la caché persistente L2.
    3. Si la entrada no se encuentra en la caché persistente:
      • Política de LookupCache: No se recupera ningún valor de la caché.
      • Política de ResponseCache: Edge muestra la respuesta real del objetivo al cliente y almacena la entrada en la caché hasta que vence o se invalida.
  • Cuando una política actualiza o invalida una entrada de caché existente (Política de InvalidateCache, PopulateCache o ResponseCache):
    1. El procesador de mensajes que recibe la solicitud envía una transmisión para actualizar o borrar la entrada en la caché L1 en sí misma y en todos los demás procesadores de mensajes en todas las regiones.
      • Si la transmisión se realiza de forma correcta, cada procesador receptor de mensajes actualiza o quita la entrada en la caché L1.
      • Si la emisión falla, el valor de caché no válido permanece en la caché L1 en los procesadores de mensajes que no recibieron la emisión. Esos procesadores de datos tendrán datos inactivos en la caché L1 hasta que venza el tiempo de actividad (TTL) de la entrada o se quite cuando se alcance el límite de memoria del procesador de mensajes.
    2. La transmisión también actualiza o borra la entrada en la caché L2.

Administra límites de caché

A través de la configuración, puedes administrar algunos aspectos de la caché. El espacio general disponible para la caché en memoria está limitado por los recursos del sistema y no se puede configurar. Se aplican las siguientes restricciones a la caché:

  • Límites de caché: se aplican varios límites de caché, como el nombre y el tamaño del valor, la cantidad total de cachés, la cantidad de elementos en una caché y un vencimiento.
  • Caché en memoria (L1). Los límites de memoria para la caché no se pueden configurar. Apigee configura los límites para cada procesador de mensajes que aloja cachés de varios clientes.

    En un entorno de nube alojado, en el que las cachés en memoria para todas las implementaciones de clientes se alojan en varios procesadores de mensajes compartidos, cada procesador cuenta con un umbral de porcentaje de memoria configurable de Apigee a fin de garantizar que el almacenamiento en caché no consuma todos los límites de la memoria de la aplicación. A medida que se alcanza el umbral para un procesador de mensajes determinado, las entradas de caché se expulsan de la memoria con menos frecuencia de uso. Las entradas expulsadas de la memoria permanecen en la memoria caché L2 hasta que vencen o se invalidan.

  • Caché persistente (L2) Las entradas expulsadas de la caché en memoria permanecen en la caché persistente de acuerdo con la configuración de tiempo de actividad.

Optimizaciones configurables

En la siguiente tabla, se muestra la configuración que puedes usar para optimizar el rendimiento de la caché. Puedes especificar valores para esta configuración cuando creas una caché de entorno nuevo, como se describe en Crea y edita una caché de entorno.

Configuración Descripción Notas
Vencimiento Especifica el tiempo de actividad de las entradas de caché. Ninguno