Antipatrón: almacenar en caché datos de más de 256 KB

Estás consultando la documentación de Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.

Apigee ofrece la posibilidad de almacenar datos en una caché en tiempo de ejecución para que se conserven y se puedan recuperar más rápido.

  • Los datos se almacenan inicialmente en la caché en memoria del procesador de mensajes, denominada caché de nivel 1.
  • La caché de nivel 1 está limitada por la cantidad de memoria reservada para ella como porcentaje de la memoria de la JVM.
  • Las entradas almacenadas en caché se conservan más adelante en la caché de nivel 2, a la que pueden acceder todos los procesadores de mensajes. Encontrarás más detalles en la sección de abajo.
  • La caché de nivel 2 no tiene ningún límite estricto en el número de entradas de caché, pero el tamaño máximo de la entrada que se puede almacenar en caché está limitado a 256 KB. El tamaño de caché de 256 KB es el recomendado para obtener un rendimiento óptimo.

Antipatrón

Este antipatrón en concreto trata sobre las implicaciones de superar las restricciones de tamaño de caché actuales en Apigee.

Cuando se almacenan en caché datos de más de 256 KB, las consecuencias son las siguientes:

  • Las solicitudes de API que se ejecutan por primera vez en cada uno de los procesadores de mensajes deben obtener los datos de forma independiente de la fuente original (una política o un servidor de destino), ya que las entradas > 256 KB no están disponibles en la caché de nivel 2.
  • Almacenar datos de mayor tamaño (> 256 KB) en la caché de nivel 1 suele ejercer más presión sobre los recursos de la plataforma. Esto provoca que la memoria caché de nivel 1 se llene más rápido y, por lo tanto, haya menos espacio disponible para otros datos. Por lo tanto, no se podrán almacenar en caché los datos de forma tan agresiva como se quiera.
  • Las entradas almacenadas en caché de los procesadores de mensajes se eliminarán cuando se alcance el límite del número de entradas. De esta forma, los datos se vuelven a obtener de la fuente original en los procesadores de mensajes correspondientes.

Dos diagramas de flujo.
  Una para el tamaño<=512 KB que muestra los flujos entre el proxy de API y los procesadores de mensajes, así como los flujos entre los procesadores de mensajes y la caché de almacenamiento persistente de nivel 2. Una para tamaños superiores a 512 KB que muestra
  los flujos entre el proxy de la API y los procesadores de mensajes, y los flujos entre los procesadores de mensajes y los datos o respuestas
  que no se almacenan en la caché de nivel 2.

Impacto

  • Los datos de tamaño superior a 256 KB no se almacenarán en la caché persistente o de nivel 2.
  • Si se llama con más frecuencia a la fuente original (una política o un servidor de destino), se producirán latencias mayores en las solicitudes de la API.

Práctica recomendada

  • Es preferible almacenar en caché datos de tamaño inferior a 256 KB para obtener un rendimiento óptimo.
  • Si necesitas almacenar datos de más de 256 KB, ten en cuenta lo siguiente:
    • Usar cualquier base de datos adecuada para almacenar grandes cantidades de datos

      OR

    • Comprimir los datos

Más información