Esta página aplica-se ao Apigee e ao Apigee Hybrid.
Veja a documentação do
Apigee Edge.
Este tópico descreve o funcionamento da cache nas políticas, como a política PopulateCache, a política LookupCache, a política InvalidateCache e a política ResponseCache.
Acerca das caches
Quando uma política de colocação em cache é executada, é criada uma cache de nível 1 de curta duração. Após um segundo, se não for acedido a um item em cache, este é persistido numa base de dados onde está disponível para todos os processadores de mensagens implementados num ambiente até a cache expirar. Configura o tempo de expiração diretamente na política de cache.
Níveis de cache persistente e na memória
As caches partilhadas e de ambiente são criadas num sistema de dois níveis composto por um nível na memória e um nível persistente, conforme mostrado na figura seguinte. As políticas interagem com ambos os níveis como uma estrutura combinada. O Apigee gere a relação entre os níveis.
- O nível 1 é uma cache na memória (L1) para acesso rápido. Cada nó de processamento de mensagens (MP)
tem a sua própria cache na memória para a resposta mais rápida aos pedidos.
- A L1 é uma cache na memória de curta duração (1 segundo).
- Quando o limite de memória é atingido, o Apigee remove as entradas da cache da memória (embora continuem a ser mantidas na cache persistente de nível 2) para garantir que a memória permanece disponível para outros processos.
- O L1 é fornecido com uma cache de um segundo de curta duração para realizar pesquisas mais rápidas de pedidos concorrentes com a mesma chave de cache.
- O nível 2 é uma cache persistente (L2) abaixo da cache na memória. Todos os nós de processamento de mensagens partilham um arquivo de dados de cache (Cassandra) para persistir as entradas de cache.
- As entradas da cache persistem aqui, mesmo depois de serem removidas da cache L1, como quando são atingidos os limites na memória.
- Uma vez que a cache persistente é partilhada entre processadores de mensagens (mesmo em diferentes regiões), as entradas da cache estão disponíveis independentemente do nó que recebe um pedido dos dados em cache.
- Apenas as entradas de um determinado tamanho podem ser colocadas em cache, e aplicam-se outros limites de cache. Consulte o artigo Gerir limites da cache.
- O conteúdo da cache no L2 está encriptado com o algoritmo AES-256. Os dados são desencriptados antes de serem usados pelo tempo de execução e são encriptados antes de serem escritos no L2. Assim, o processo de encriptação é invisível para os utilizadores.
Como as políticas usam a cache
A secção seguinte descreve como o Apigee processa as entradas da cache à medida que as suas políticas de colocação em cache fazem o seu trabalho.
- Quando uma política escreve uma nova entrada na cache (política PopulateCache ou ResponseCache):
- O Apigee escreve a entrada na cache L1 na memória apenas no processador de mensagens que processou o pedido. Se os limites de memória no processador de mensagens forem atingidos antes de a entrada expirar, o Apigee remove a entrada da cache L1.
- O Apigee também escreve a entrada na cache L2.
- Quando uma política lê a partir da cache (política LookupCache ou ResponseCache):
- O Apigee procura primeiro a entrada na cache L1 na memória do processador de mensagens que processa o pedido.
- Se não existir nenhuma entrada correspondente na memória, o Apigee procura a entrada na cache persistente de nível 2 (L2).
- Se a entrada não estiver na cache persistente:
- Política LookupCache: não é obtido nenhum valor da cache.
- Política ResponseCache: o Apigee devolve a resposta real do destino ao cliente e armazena a entrada na cache até expirar ou ser invalidada.
- Quando uma política atualiza ou invalida uma entrada de cache existente (política InvalidateCache, política PopulateCache ou política ResponseCache):
- O processador de mensagens que recebe o pedido elimina a entrada da cache L1 na memória de um segundo e também elimina a entrada da cache L2.
- Após uma atualização ou uma invalidação, é possível que os outros processadores de mensagens continuem a usar a cache L1 na memória.
- Uma vez que o L1 está configurado para expirar num segundo, não é necessário um evento de eliminação/atualização para remover a entrada do L1.
Gerir limites de cache
Através da configuração, pode gerir alguns aspetos da cache. O espaço geral disponível para a cache na memória está limitado pelos recursos do sistema e não é configurável. Aplicam-se as seguintes restrições à cache:
- Limites da cache: aplicam-se vários limites da cache, como o tamanho do nome e do valor, o número total de caches, o número de itens numa cache e a expiração.
-
Cache na memória (L1). Os limites de memória da cache não são configuráveis. Os limites são definidos pela Apigee para cada processador de mensagens que aloja caches para vários clientes.
Num ambiente de nuvem alojado, onde as caches na memória para todas as implementações de clientes estão alojadas em vários processadores de mensagens partilhados, cada processador apresenta um limite percentual de memória configurável pelo Apigee para garantir que o armazenamento em cache não consome toda a memória da aplicação. Quando o limite é ultrapassado para um determinado processador de mensagens, as entradas da cache são removidas da memória com base na utilização mais recente. As entradas removidas da memória permanecem na cache de nível 2 até expirarem ou serem invalidadas.
- Cache persistente (L2). As entradas removidas da cache na memória permanecem na cache persistente de acordo com as definições de tempo de vida configuráveis.
Otimizações configuráveis
A tabela seguinte apresenta as definições que pode usar para otimizar o desempenho da cache.
Definição | Descrição | Notas |
---|---|---|
Expiração | Especifica o tempo de vida das entradas da cache. | Nenhum |