O Dispatcher é uma ferramenta de armazenamento em cache e/ou balanceamento de carga do Adobe Experience Manager que ajuda a possibilitar um ambiente de criação da web rápido e dinâmico. Para armazenamento em cache, o Dispatcher funciona como parte de um servidor HTTP, como o Apache. Ele tem o objetivo de armazenar (em cache) o máximo possível do conteúdo estático do site e diminuir ao máximo a frequência de uso do mecanismo de layout do site. Como um balanceador de carga, o Dispatcher distribui as solicitações de usuário (carga) entre as diferentes instâncias do AEM (renderizações).
Para armazenamento em cache, o módulo Dispatcher usa a capacidade do servidor Web de fornecer conteúdo estático. O Dispatcher coloca os documentos em cache na raiz do documento do servidor web.
O Dispatcher usa a capacidade do servidor Web de fornecer conteúdo estático. O Dispatcher armazena os documentos em cache na raiz de documentos do servidor web. O Dispatcher tem dois métodos primários para atualizar o conteúdo em cache quando mudanças são feitas no site.
O balanceamento de carga distribui as solicitações de usuário (carga) entre várias instâncias do AEM. A lista a seguir descreve as vantagens do balanceamento de carga:
Para obter mais detalhes, consulte a página de Visão geral do Dispatcher
Você pode baixar o módulo Dispatcher mais recente na página Notas de versão do Dispatcher.
Consulte a página Instalação do Dispatcher.
Consulte a página Configuração do Dispatcher.
Consulte Uso do Dispatcher com uma instância de autor para obter as etapas detalhadas.
Você pode configurar o Dispatcher CQ com vários domínios, desde que os domínios satisfaçam às seguintes condições:
Leia Uso do Dispatcher com vários domínios para obter mais detalhes.
Você pode usar o recurso conexões aderentes, que garante que todos os documentos de um usuário sejam processados na mesma instância do AEM. Esse recurso é importante se você usar páginas personalizadas e dados de sessão. Os dados são armazenados na instância. Portanto, as solicitações subsequentes do mesmo usuário devem retornar a essa instância ou os dados serão perdidos.
Como as conexões aderentes restringem a capacidade do Dispatcher de otimizar as solicitações, você deve usar essa abordagem somente quando necessário. Você pode especificar a pasta que contém os documentos "fixos", garantindo que todos os documentos dessa pasta sejam processados na mesma instância para um usuário.
Para a maioria das páginas que usam conexões aderentes, você deve desativar o armazenamento em cache. Caso contrário, a mesma instância da página será exibida para todos os usuários, independentemente do conteúdo da sessão.
Para alguns aplicativos, pode ser possível usar conexões aderentes e armazenamento em cache. Por exemplo, se você exibir um formulário que grava dados em uma sessão, será possível usar conexões aderentes e armazenamento em cache em conjunto.
Sim, se o computador for suficientemente eficiente. No entanto, é recomendável configurar o Dispatcher e a instância de publicação do AEM em computadores diferentes.
Normalmente, a instância de publicação reside dentro do firewall, e o Dispatcher reside no DMZ. Se decidir manter a instância de publicação e o Dispatcher no mesmo computador, verifique se as configurações de firewall proíbem o acesso direto à instância de publicação por meio de redes externas.
Sim. Por exemplo, se você quiser armazenar em cache somente arquivos GIF, especifique *.gif, na seção de cache do arquivo de configuração dispatcher.any.
Você pode excluir arquivos do cache usando uma solicitação HTTP. Quando a solicitação HTTP é recebida, o Dispatcher exclui os arquivos do cache. O Dispatcher armazena os arquivos em cache novamente somente quando recebe uma solicitação do cliente para a página. A exclusão de arquivos em cache dessa maneira é adequada para sites que provavelmente não receberão solicitações simultâneas para a mesma página.
A solicitação HTTP tem a seguinte sintaxe:
POST /dispatcher/invalidate.cache HTTP/1.1
CQ-Action: Activate
CQ-Handle: path-pattern
Content-Length: 0
O Dispatcher exclui os arquivos e pastas em cache que têm nomes que correspondem ao valor do cabeçalho CQ-Handle. Por exemplo, um CQ-Handle de /content/geomtrixx-outdoors/en
corresponde aos seguintes itens:
Todos os arquivos (de qualquer extensão de arquivo) com o nome de “en” no diretório geometrixx-outdoors.
Qualquer diretório com o nome de _jcr_content
que esteja abaixo do diretório “en” (que, se existir, contém renderizações em cache de subnós da página).
O diretório en
só será excluído se a CQ-Action
for Delete
ou Deactivate
.
Para obter mais detalhes sobre este tópico, consulte Invalidação manual do cache do Dispatcher.
Consulte a página Armazenamento em cache de conteúdo seguro.
Consulte as páginas Lista de verificação de segurança do Dispatcher e Lista de verificação de segurança do AEM.
jcr:content
alterado para jcr%3acontent
Pergunta: recentemente, a empresa enfrentou um problema no nível do Dispatcher. Uma das chamadas AJAX que estava recebendo alguns dados do repositório CQ continha jcr:content
. Isso foi codificado em jcr%3acontent
, resultando no conjunto de resultados incorreto.
Resposta: use o método ResourceResolver.map()
para obter um URL “amigável” a ser usado/emitido para receber solicitações e também para solucionar problemas de armazenamento em cache do Dispatcher. O método map() codifica os dois pontos :
como sublinhados e o método resolve() os decodifica novamente no formato legível do SLING JCR. Use o método map() para gerar o URL usado na chamada AJAX.
Consulte a página Replicação.
Consulte estes artigos de solução de problemas.
Se as operações de exclusão estiverem fazendo com que o Dispatcher libere, use a solução alternativa nesta publicação de blog da comunidade, por Sensei Martin.
Você pode usar o recurso de “replicação em cadeia”. Com esse recurso ativado, o agente de limpeza do Dispatcher envia uma solicitação de limpeza quando uma replicação é recebida do autor.
Para habilitá-lo:
Como o Dispatcher determina se um documento está atualizado?
Para determinar se um documento está atualizado, o Dispatcher executa estas ações:
Verifica se o documento está sujeito a invalidação automática. Caso contrário, o documento será considerado atualizado.
Se o documento estiver configurado para invalidação automática, o Dispatcher verificará se ele é mais antigo ou mais recente do que a última alteração disponível. Se for mais antigo, o Dispatcher solicitará a versão atual da instância do AEM e substituirá a versão no cache.
Você pode definir se o Dispatcher armazena em cache um documento usando o arquivo Configuração do Dispatcher, dispatcher.any
. O Dispatcher verifica a solicitação em relação à lista de documentos que podem ser armazenados em cache. Se o documento não estiver nessa lista, o Dispatcher solicitará o documento da instância do AEM.
A propriedade /rules
controla quais documentos são armazenados em cache de acordo com o caminho do documento. Independentemente da propriedade /rules
, o Dispatcher nunca armazena em cache um documento nas seguintes circunstâncias:
(?)
.O Dispatcher armazena os arquivos em cache no servidor Web como se fossem parte de um site estático. Se um usuário solicitar um documento armazenado em cache, o Dispatcher verificará se esse documento existe no sistema de arquivos do servidor Web. Nesse caso, o Dispatcher retornará os documentos. Se não estiver em cache, o Dispatcher solicitará o documento da instância do AEM.
Os métodos GET ou HEAD (para o cabeçalho HTTP) podem ser armazenados em cache pelo Dispatcher. Para obter informações adicionais sobre o armazenamento em cache do cabeçalho de resposta, consulte a seção Armazenamento em cache de cabeçalhos de resposta HTTP.
Sim. Nesses casos, verifique se os Dispatchers podem acessar o site do AEM diretamente. Um Dispatcher não pode lidar com solicitações provenientes de outro Dispatcher.