Elementos internos do cache

Você está visualizando a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

Este tópico descreve o funcionamento do cache abaixo das políticas como a política de preenchimento de cache, a política LookupCache, a política InvalidateCache e a política de cache de resposta.

Caches compartilhados e de ambiente

Cada política de armazenamento em cache configurada pode usar um dos dois tipos de cache: um cache compartilhado incluído a que seus apps têm acesso e um ou mais caches no escopo do ambiente que você cria.

  • Cache compartilhado:por padrão, os proxies têm acesso a um cache compartilhado em cada ambiente. O cache compartilhado funciona bem para casos de uso básicos.

    Só é possível trabalhar com o cache compartilhado usando políticas de armazenamento em cache, e não a API de gerenciamento. Para que uma política de armazenamento em cache use o cache compartilhado, basta omitir o elemento <CacheResource> da política.

  • Cache de ambiente:quando você quer configurar propriedades de cache com valores escolhidos, é possível criar um cache no escopo do ambiente. Para mais informações sobre como criar um cache, consulte Como criar e editar um cache de ambiente.

    Ao criar um cache de ambiente, você configura as propriedades padrão dele. É possível fazer com que uma política de armazenamento em cache use o cache do ambiente especificando o nome do cache no elemento <CacheResource> da política.

Sobre a criptografia de cache

Edge para nuvem pública:o cache é criptografado apenas em organizações habilitadas para PCI e HIPAA. A criptografia dessas organizações é configurada durante o provisionamento da organização.

Níveis de cache permanente e na memória

Os caches compartilhados e do ambiente são criados em um sistema de dois níveis composto de um nível na memória e um nível permanente. As políticas interagem com os dois níveis como uma estrutura combinada. O Edge gerencia a relação entre os níveis.

  • 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 (implementado do Ehcache) para receber uma resposta mais rápida às solicitações.
    • Em cada nó, uma certa porcentagem de memória é reservada para uso pelo cache.
    • À medida que o limite de memória é atingido, o Apigee Edge remove entradas de cache da memória (embora elas ainda sejam mantidas no cache persistente L2) para garantir que a memória permaneça disponível para outros processos.
    • As entradas são removidas na ordem do tempo desde o último acesso, sendo as mais antigas removidas primeiro.
    • Esses caches também são limitados pelo número de entradas.
  • 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 do cache persistem aqui mesmo após serem removidas do cache L1, como quando os limites da 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.

Confira também Apigee Edge Caching In Detail, na Comunidade da Apigee.

Como as políticas usam o cache

Veja a seguir como o Apigee Edge lida com entradas de cache conforme suas políticas de armazenamento em cache funcionam.

  • Quando uma política grava uma nova entrada no cache (política PopulateCache ou ResponseCache):
    1. O Edge 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 no processador de mensagens forem atingidos antes que a entrada expire, o Edge removerá a entrada do cache L1.
    2. O Edge também grava a entrada no cache L2.
  • Quando uma política do cache (política LookupCache ou ResponseCache):
    1. O Edge 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 na memória correspondente, o Edge procurará a entrada no cache persistente L2.
    3. Se a entrada não estiver no cache persistente:
      • Política LookupCache: nenhum valor é recuperado do cache.
      • Política ResponseCache: o Edge retorna a resposta real do destino ao cliente e armazena a entrada no cache até a expiração ou a invalidação.
  • Quando uma política atualiza ou invalida uma entrada de cache existente (política InvalidateCache, PopulateCache ou ResponseCache):
    1. O processador de mensagens que recebe a solicitação envia uma transmissão para atualizar ou excluir a entrada no cache L1 dela e de todos os outros processadores de mensagens em todas as regiões.
      • Se a transmissão for bem-sucedida, cada processador de mensagens de entrada será atualizado ou removerá a entrada no cache L1.
      • Se a transmissão falhar, o valor do cache invalidado permanecerá no cache L1 nos processadores de mensagens que não receberam a transmissão. Esses processadores de mensagens terão dados desatualizados no cache L1 até que o tempo de vida da entrada (TTL) expire ou seja removido quando os limites de memória do processador de mensagens forem atingidos.
    2. A transmissão também atualiza ou exclui a entrada no cache L2.

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. Especifique valores para essas configurações ao criar um novo cache de ambiente, conforme descrito em Como criar e editar um cache de ambiente.

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