O Dispatcher é uma ferramenta de cache e/ou balanceamento de carga da Adobe Experience Manager que ajuda a realizar um ambiente rápido e dinâmico de autoria da Web. Para armazenamento em cache, o Dispatcher funciona como parte de um servidor HTTP, como o Apache, com o objetivo de armazenar (ou "armazenar") o máximo possível de conteúdo estático do site e acessar o mecanismo de layout do site com a menor frequência possível. Em uma função de balanceamento de carga, o Dispatcher distribui solicitações de usuário (carga) em diferentes instâncias 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 da Web de fornecer conteúdo estático. O Dispatcher armazena documentos em cache na raiz do documento do servidor da Web. O Dispatcher tem dois métodos primários para atualizar o conteúdo de cache quando mudanças forem feitas ao website.
O Balanceamento de Carga distribui solicitações de usuário (carga) em várias instâncias AEM. A lista a seguir descreve as vantagens do balanceamento de carga:
Para obter mais detalhes, consulte a página Visão geral do Dispatcher
Você pode baixar o módulo Dispatcher mais recente da página Notas de versão do Dispatcher.
Consulte a página Instalando o Dispatcher
Consulte a página Configurando o Dispatcher.
Consulte Usando o Dispatcher com uma Instância de Autor para obter as etapas detalhadas.
Você pode configurar o CQ Dispatcher com vários domínios, desde que os domínios atendam às seguintes condições:
Leia Usando o Dispatcher com Vários Domínios para obter mais detalhes.
Você pode usar o recurso conexões adesivas, 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 são perdidos.
Como as conexões aderentes restringem a capacidade do Dispatcher de otimizar solicitações, você deve usar essa abordagem somente quando necessário. Você pode especificar a pasta que contém os documentos "fixos", garantindo assim 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 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 adesivas e cache. Por exemplo, se você exibir um formulário que grava dados em uma sessão, poderá usar conexões aderentes e armazenamento em cache em conjunto.
Sim, se a máquina for suficientemente poderosa. No entanto, é recomendável configurar o Dispatcher e a instância de publicação de AEM em máquinas diferentes.
Normalmente, a instância Publicar fica dentro do firewall e o Dispatcher reside no DMZ. Se você decidir ter a instância Publicar e o Dispatcher na mesma máquina física, verifique se as configurações do firewall proíbem o acesso direto à instância Publicar de redes externas.
Sim. Por exemplo, se você deseja armazenar em cache apenas arquivos GIF, especifique *.gif na seção de cache do dispatcher.any arquivo de configuração.
É possível 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 é apropriada 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 de Identificador de CQ. Por exemplo, um identificador de CQ de /content/geomtrixx-outdoors/en
corresponde aos seguintes itens:
Todos os arquivos (de qualquer extensão de arquivo) nomeados em en no diretório geometrixx-outdoors
Qualquer diretório chamado _jcr_content
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 CQ-Action
for Delete
ou Deactivate
.
Para obter mais detalhes sobre esse tópico, consulte Invalidando manualmente o Cache do Dispatcher.
Consulte a página Armazenamento em cache de conteúdo protegido.
Consulte as páginas Dispatcher Security Checklist e AEM Security Checklist.
jcr:content
alterado para jcr%3acontent
Pergunta: Recentemente, enfrentamos um problema no nível do despachante em que uma das chamadas ajax que estava recebendo alguns dados do repositório do CQ estava jcr:content
nele e foi codificada para jcr%3acontent
resultar em um conjunto de resultados incorreto.
Resposta: Use o ResourceResolver.map()
método para obter um URL "Amigável" para ser usado/receber solicitações de e também para resolver o problema de armazenamento em cache com o Dispatcher. O método map() codifica os dois pontos :
para sublinhados e o método resolve() os decodifica de volta ao formato legível SLING JCR.Você precisa usar o método map() para gerar o URL usado na chamada Ajax.
Consulte a página Replicação.
Consulte este artigo de solução de problemas que responde às seguintes perguntas:
Se as operações de exclusão estiverem fazendo com que o Dispatcher esvazie, use a solução alternativa nesta publicação do blog da comunidade por Sensei Martin.
Você pode usar o recurso "replicação em cadeia". Com esse recurso ativado, o agente de liberação do dispatcher envia uma solicitação de liberação quando uma replicação é recebida do autor.
Para ativá-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 um documento em cache usando o arquivo Dispatcher configuration, 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 um documento em cache nas seguintes circunstâncias:
(?)
.O Dispatcher armazena arquivos em cache no servidor da Web como se fossem parte de um site estático. Se um usuário solicitar um documento em cache, o Dispatcher verificará se o documento existe no sistema de arquivos do servidor da Web. Em caso afirmativo, o Dispatcher retornará os documentos. Caso contrário, o Dispatcher solicitará o documento da instância 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 cache do cabeçalho de resposta, consulte a seção Cache de Cabeçalhos de Resposta HTTP.
Sim. Nesses casos, verifique se ambos os Dispatchers podem acessar o site da AEM diretamente. Um Dispatcher não pode lidar com solicitações provenientes de outro Dispatcher.