O Apigee Edge oferece armazenamento em cache para persistência de dados entre solicitações. Quando os dados da API são recebidos, eles são armazenados em cache por um breve período e, em seguida, excluídos. O período máximo de tempo em que uma parte dos dados é mantida antes de ser excluída é chamada de validade, ou tempo de vida (TTL) do cache. Cada cache tem um TTL padrão, mas em alguns casos pode ser necessário alterar o valor do TTL para melhorar o desempenho da API.
Tipos de cache
Os dados da API são armazenados em dois tipos de cache:
- Nível 1 (L1): cache na memória, que tem acesso mais rápido, mas menos armazenamento disponível de armazenamento.
- Nível 2 (L2): cache persistente em um armazenamento de dados do Cassandra, que tem uma acesso, mas aumentar a capacidade de armazenamento disponível.
Quando uma entrada de dados no cache L1 atinge o TTL L1, ela é excluída. No entanto, um cópia da entrada é mantida no cache L2 (que tem um TTL mais longo que o cache L1), onde permanece acessível para outros processadores de mensagens. Consulte Na memória e níveis de cache permanente para mais detalhes sobre o cache.
TTL L1 máx.
No Edge para nuvem privada, é possível definir o TTL máximo do cache L1 para cada mensagem
usando a propriedade Max L1 TTL (conf_cache_max.l1.ttl.in.seconds
).
Uma entrada no cache L1 expira após atingir o valor máximo de TTL L1 e é excluída.
Observações:
- Por padrão, o TTL L1 máximo está desativado (com o valor
-1
), Nesse caso, o TTL de uma entrada no cache L1 é determinado pela política PreencherCache configurações de expiração (para os caches L1 e L2). - O TTL L1 máximo só tem efeito se o valor for menor que a expiração geral do cache.
Configurar o TTL máximo de L1
É possível definir o TTL máximo do L1 em um processador de mensagens da seguinte maneira:
- Abra o
de configuração do Terraform
/opt/apigee/customer/application/message-processor.properties
em um editor. Crie o arquivo se ele não existir. - Defina a propriedade "Max L1 TTL" como o valor desejado:
conf_cache_max.l1.ttl.in.seconds = 180
Recomendamos o valor de
180
segundos. - Verifique se o arquivo de propriedades é de propriedade da "apigee" usuário:
chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Reinicie o processador de mensagens:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Diretrizes para configurar o TTL máximo do L1
Ao definir o TTL máximo do L1, lembre-se das seguintes diretrizes:
- RPCs: se você notar que uma chamada de procedimento remoto (RPC) está faltando entre
processadores de mensagens (MPs)—
especialmente em vários data centers,
é possível que o cache L1 tenha entradas desatualizadas, que permanecerão desatualizadas até que sejam excluídas.
do cache L1. Definir o TTL máximo do L1 como um valor menor força
entradas desatualizadas sejam removidas e substituídas por valores novos do cache L2 mais cedo.
Solução:diminuirconf_cache_max.l1.ttl.in.seconds
. - Carga excessiva no Casandra:quando você define um valor para o TTL máximo L1, as entradas de cache L1
vai expirar com mais frequência,
levando a mais ausências de cache L1 e mais ocorrências em cache L2. Como o cache L2 é atingido com mais frequência,
O Cassandra terá uma carga maior.
Solução: aumentarconf_cache_max.l1.ttl.in.seconds
Como regra geral, ajuste o TTL máximo do L1 para um valor que equilibre a frequência de ausências de RPC entre os MPs com a carga potencial no Cassandra.
Recomendamos definir o valor de conf_cache_max.l1.ttl.in.seconds
como pelo menos
180
segundos (3 minutos) para manter o processamento funcionando sem problemas.