Armazenamento em Cache Avançado

Clusters do Caching Proxy com Equilíbrio de Carga

Para fornecer funcionalidade de armazenamento em cache mais avançada, use o Caching Proxy como um proxy reverso em conjunto com o componente Load Balancer. Integrando os recursos de armazenamento em cache e de equilíbrio de carga, você pode criar uma infra-estrutura de desempenho da Web eficiente e altamente gerenciável.

A Figura 4 descreve como você pode combinar o Caching Proxy com o Load Balancer para entregar conteúdo da Web de forma eficiente, mesmo em circunstâncias de grande demanda. Nesta configuração, o Servidor Proxy (4) está configurado para interceptar pedidos cujas URLs incluem o nome do host para um cluster de hosts de conteúdo (7) que está recebendo equilíbrio de carga do Load Balancer (6).

Figura 4. Caching Proxy Agindo como Servidor Proxy para um Cluster com Equilíbrio de Carga
O gráfico que aparece aqui descreve o Servidor Proxy agindo como um substituto para um cluster com equilíbrio de carga
Legenda: 1--Cliente   2--Internet   3--Roteador/Gateway   4--Caching Proxy   5--Cache   6--Load Balancer   7--Host de Conteúdo

Quando um cliente (1) solicita um arquivo X, o pedido cruza a Internet (2) e entra na rede interna da empresa através de seu gateway de Internet (3). O Servidor Proxy intercepta o pedido, gera um novo pedido com seu próprio endereço IP como o endereço de origem e envia o novo pedido para o Load Balancer no endereço do cluster. O Load Balancer utiliza seu algoritmo de equilíbrio de carga para determinar qual host de conteúdo tem mais capacidade, no momento, para atender ao pedido do arquivo X. Esse host de conteúdo retorna o arquivo X ao Servidor Proxy e não através do Load Balancer. O Servidor Proxy determina se deve armazená-lo e entregá-lo ao usuário final da forma descrita anteriormente.

Armazenamento em Cache de Conteúdo Dinâmico

A funcionalidade de armazenamento em cache avançado também é fornecida pelo plug-in de Armazenamento em Cache Dinâmico do Caching Proxy. Quando utilizado com o WebSphere Application Server, o Caching Proxy tem a capacidade de armazenar em cache, servir e invalidar conteúdo dinâmico em forma de JSP (JavaServer Pages) e de respostas de servlet geradas por um WebSphere Application Server.

Geralmente, um conteúdo dinâmico com tempo de expiração indefinido deve ser marcado como "não armazenar em cache", porque a lógica padrão de expiração da cache baseada em tempo não assegura sua remoção na hora certa. A lógica de expiração orientada a eventos do plug-in do Armazenamento em Cache Dinâmico permite que o conteúdo com um tempo de expiração indefinido seja armazenado em cache pelo Servidor Proxy. Armazenar em cache tal conteúdo na extremidade da rede evita que hosts de conteúdo chamem repetidamente um Application Server para atender a pedidos de clientes. Isto pode oferecer os seguintes benefícios:

O armazenamento em cache de respostas de servlet é excelente para páginas da Web geradas dinamicamente que expiram com base na lógica do aplicativo ou em um evento como uma mensagem de um banco de dados. Embora a duração de tal página seja finita, o valor de tempo de duração não pode ser definido no tempo de criação porque o disparo de expiração não pode ser conhecido antecipadamente. Quando o tempo de duração para tais páginas for definido como zero, os hosts de conteúdo obterão uma grande penalidade quando servindo conteúdo dinâmico.

A responsabilidade de sincronizar a cache dinâmica do Caching Proxy e Application Server é compartilhada por ambos os sistemas. Por exemplo, uma página da Web pública gerada dinamicamente por um aplicativo que fornece a previsão do tempo atual pode ser exportada pelo Application Server e armazenada em cache pelo Caching Proxy. O Caching Proxy pode então servir os resultados de execução do aplicativo repetidamente para muitos usuários diferentes, até ser notificado de que a página é inválida. O conteúdo na cache de resposta do servlet do Caching Proxy será invalida até que o Servidor Proxy remova uma entrada porque a cache está congestionada, o tempo limite padrão definido pela diretriz ExternalCacheManager no arquivo de configuração do Caching Proxy expire ou o Caching Proxy receba uma mensagem de Invalidação instruindo-o a eliminar o conteúdo de seu cache. As mensagens de Invalidação são originadas no WebSphere Application Server que possui o conteúdo e são propagadas para cada Caching Proxy configurado.

Nota:
As páginas privadas geradas dinamicamente (como uma página que mostra o conteúdo do carrinho de compras de um usuário) geralmente não podem e não devem ser armazenadas em cache pelo Caching Proxy. O Caching Proxy pode armazenar em cache e servir páginas privadas somente quando estiver configurado para executar autenticação e autorização para assegurar que as páginas privadas sejam servidas apenas a seus usuários pretendidos.

Recursos Adicionais de Armazenamento em Cache

O Caching Proxy oferece outros importantes recursos de armazenamento em cache avançados: