Objetos internos de la caché

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

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.

Cachés compartidas y de entorno

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

  • Caché compartida: De forma predeterminada, los 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 Management. Para que una política de almacenamiento en caché use la caché compartida, solo debes omitir el elemento <CacheResource> de la política.

  • Caché del entorno: Cuando deseas configurar las propiedades de la 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, debes configurar sus propiedades predeterminadas. Puedes hacer que una política de almacenamiento en caché use la caché del entorno si especificas 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é está encriptada solo en organizaciones que tienen habilitada la 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é.
    • Cuando se alcanza el límite de memoria, Apigee Edge quita las entradas de caché de la memoria (aunque todavía se mantienen en la caché persistente L2) a fin de garantizar que la memoria permanezca disponible para otros procesos.
    • Las entradas se quitan en el orden de tiempo transcurrido desde el último acceso, y las entradas más antiguas se quitan primero.
    • Estas cachés también están limitadas por el número 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 puede interesarte el almacenamiento en caché de Apigee Edge en detalle, 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 PropagaCache o ResponseCache), ocurre lo siguiente:
    1. Edge escribe la entrada en la caché L1 en la memoria solo en el procesador de mensajes que controló 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 de LookupCache o ResponseCache), haz lo siguiente:
    1. Edge busca primero la entrada en la caché L1 de la memoria del procesador de mensajes que controla 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 está en la caché persistente:
      • Política 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 anula una entrada de caché existente (InvalidateCache, ProguardCache o ResponseCache), haz lo siguiente:
    1. El procesador de mensajes que recibe la solicitud envía una transmisión para actualizar o borrar la entrada de la caché L1 propia y de todos los demás procesadores de mensajes de 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 mensajes tendrán datos inactivos en la caché L1 hasta que el tiempo de actividad (TTL) de la entrada venza o se quite cuando se alcancen los límites 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
Expiration Especifica el tiempo de actividad de las entradas de caché. Ninguno