Elementos internos do cache

Esta página se aplica à Apigee e à Apigee híbrida.

Confira a documentação da Apigee Edge.

Este tópico descreve o funcionamento do cache subordinado a políticas como PopulateCache, LookupCache, InvalidateCache e ResponseCache.

Sobre os caches

Quando uma política de armazenamento em cache é executada, um cache L1 de curta duração é criado. Depois de um segundo, se um item armazenado em cache não for acessado, ele será mantido em um banco de dados onde ficará disponível para todos os processadores de mensagens implantados em um ambiente até que o cache expire. O prazo de validade é configurado diretamente na política de cache.

Níveis de cache permanente e na memória

Os caches compartilhados e caches do ambiente são criados em um sistema de dois níveis composto por um nível na memória e um nível permanente, conforme mostrado na figura a seguir. As políticas interagem com os dois níveis como um framework combinado. A Apigee gerencia a relação entre os níveis.

As políticas de armazenamento em cache interagem com os processadores de mensagens de nível 1 que interagem com o armazenamento
            permanente de nível 2.
  • O nível 1 é um cache na memória (L1) para acesso rápido. Cada nó de processamento de mensagens (MP, na sigla em inglês) tem o próprio cache na memória para uma resposta mais rápida às solicitações.
    • O L1 é um cache de curta duração (1 segundo), na memória.
    • À medida que o limite de memória é atingido, a Apigee remove entradas de cache da memória (embora ainda sejam mantidas no cache persistente L2) para garantir que a memória permaneça disponível para outros processos.
    • O L1 é fornecido com cache de curta duração de um segundo para executar pesquisas mais rápidas em solicitações simultâneas com a mesma chave de cache.
  • O nível 2 é um cache permanente (L2) abaixo do cache na memória. Todos os nós de processamento de mensagens compartilham um armazenamento de dados em cache (Cassandra) para manter as entradas de cache persistentes.
    • As entradas de cache persistem, mesmo após serem removidas do cache L1, como quando os limites na memória são atingidos.
    • Como o cache permanente é compartilhado entre os processadores de mensagens (mesmo em diferentes regiões), as entradas de cache estarão disponíveis independentemente de qual nó receber uma solicitação de dados em cache.
    • Somente entradas de um determinado tamanho podem ser armazenadas em cache, e outros limites podem ser aplicados. Consulte Como gerenciar limites de cache.
    • O conteúdo do cache em L2 é criptografado com o algoritmo AES-256. Os dados são descriptografados antes de serem usados pelo ambiente de execução e criptografados antes de serem gravados em L2. Assim, o processo de criptografia fica invisível para os usuários.

Como as políticas usam o cache

Veja a seguir como a Apigee lida com entradas de cache de acordo com o funcionamento de suas políticas de armazenamento em cache.

  • Quando uma política grava uma nova entrada no cache (política PopulateCache ou ResponseCache):
    1. A Apigee grava a entrada no cache L1 na memória apenas no processador de mensagens que processou a solicitação. Se os limites de memória do processador de mensagens forem atingidos, antes que a entrada expire, a Apigee removerá a entrada do cache L1.
    2. A Apigee também grava a entrada no cache L2.
  • Quando uma política do cache (política LookupCache ou ResponseCache):
    1. A Apigee procura primeiro a entrada no cache L1 na memória do processador de mensagens que processa a solicitação.
    2. Se não houver uma entrada correspondente na memória, a Apigee procura a entrada no cache permanente L2.
    3. Se a entrada não estiver no cache permanente:
  • Quando uma política atualiza ou invalida uma entrada de cache existente (políticas InvalidateCache, PopulateCache ou ResponseCache):
    1. O processador de mensagens que recebe a solicitação exclui a entrada do cache L1 de um segundo na memória e também exclui a entrada do cache L2.
    2. Após uma atualização ou invalidação, é possível que os outros processadores de mensagens permaneçam no cache L1 na memória.
    3. Como o L1 está configurado para expirar em um segundo, nenhum evento de exclusão/atualização é necessário para remover a entrada do L1.

Como gerenciar limites de cache

Por meio da configuração, você pode gerenciar alguns aspectos do cache O espaço total disponível para o cache na memória é limitado pelos recursos do sistema e não é configurável. As seguintes restrições se aplicam ao cache:

  • Limites de cache: vários limites de cache se aplicam, como nome e tamanho do valor, número total de caches, número de itens em um cache e expiração.
  • Cache na memória (L1). Não é possível configurar limites de memória para seu cache. Os limites são definidos pela Apigee para cada processador de mensagens que hospeda caches para vários clientes.

    Em um ambiente de nuvem hospedado, em que os caches na memória de todas as implantações de clientes são hospedados em vários processadores de mensagens compartilhadas, cada processador conta com um limite de porcentagem de memória configurável da Apigee para garantir que o armazenamento em cache não consuma toda a memória do aplicativo. threshold medida que o limite é ultrapassado para um determinado processador de mensagens, as entradas de cache são eliminadas da memória de acordo com a forma usada recentemente. As entradas excluídas da memória permanecem no cache L2 até expirar ou serem invalidadas.

  • Cache permanente (L2). As entradas removidas do cache na memória permanecem no cache persistente de acordo com as configurações configuráveis de tempo de vida.

Otimizações configuráveis

A tabela a seguir lista as configurações que você pode usar para otimizar o desempenho do cache.

Configuração Descrição Observações
Expiração Especifica o tempo de vida para entradas de cache. Nenhum