Descarregamento de tarefas

Introdução

A descarga distribui tarefas de processamento que somam instâncias de Experience Manager em uma topologia. Com o descarregamento, você pode usar instâncias de Experience Manager específicas para executar tipos específicos de processamento. O processamento especializado permite maximizar o uso dos recursos disponíveis do servidor.

A descarga é baseada nos recursos Apache Sling Discovery e Sling JobManager. Para usar a descarga, adicione clusters de Experience Manager a uma topologia e identifique os tópicos de trabalho que o cluster processa. Os clusters são compostos de uma ou mais instâncias Experience Manager, de modo que uma única instância é considerada um cluster.

Para obter informações sobre como adicionar instâncias a uma topologia, consulte Administrando topologias.

Distribuição de tarefas

O Sling JobManager e o JobConsumer permitem a criação de jobs que são processados em uma topologia:

  • JobManager: Um serviço que cria empregos para tópicos específicos.
  • JobConsumer: Um serviço que executa trabalhos de um ou mais tópicos. Vários serviços JobConsumer podem ser registrados para o mesmo tópico.

Quando o JobManager cria um job, a estrutura de Descarregamento seleciona um cluster Experience Manager na topologia para executar o job:

  • O cluster deve incluir uma ou mais instâncias que estejam executando um JobConsumer registrado para o tópico do trabalho.
  • O tópico deve ser ativado para pelo menos uma instância no cluster.

Consulte Configurando o Consumo de Tópico para obter informações sobre como refinar a distribuição de tarefas.

chlimage_1-109

Quando a estrutura de Descarregamento seleciona um cluster para executar um job e o cliente é composto de várias instâncias, a Distribuição de Sling determina qual instância no cluster executa o job.

Cargas de trabalho

A estrutura de descarga oferece suporte a cargas de trabalho que associam jobs a recursos no repositório. As cargas de trabalho são úteis quando as tarefas são criadas para recursos de processamento e a tarefa é descarregada para outro computador.

Após a criação de um cargo, a carga fica apenas garantida na instância que cria o job. Ao descarregar a tarefa, os agentes de replicação garantem que a carga seja criada na instância que eventualmente consuma a tarefa. Quando a execução da tarefa é concluída, a replicação reversa faz com que a carga seja copiada de volta para a instância que criou a tarefa.

Administrando topologias

As topologias são clusters de Experience Manager que estão participando da descarga. Um cluster consiste em uma ou mais instâncias de servidor de Experience Manager (uma única instância é considerada um cluster).

Cada instância de Experience Manager executa os seguintes serviços relacionados à descarga:

  • Serviço de descoberta: Envia solicitações para um Conector de topologia para unir a topologia.
  • Conector de topologia: Recebe as solicitações de ingresso e aceita ou recusa cada solicitação.

O Serviço de descoberta de todos os membros da topologia aponta para o Conector de topologia em um dos membros. Nas seções a seguir, esse membro é chamado de membro raiz.

chlimage_1-110

Cada cluster na topologia contém uma instância reconhecida como líder. O líder do cluster interage com a topologia em nome dos outros membros do cluster. Quando o pontilhado deixa o cluster, um novo pontilhado do cluster é automaticamente escolhido.

Exibindo a Topologia

Use o Navegador de topologia para explorar o estado da topologia na qual a instância do Experience Manager está participando. O Navegador de topologia mostra os clusters e as instâncias da topologia.

Para cada cluster, você verá uma lista de membros do cluster que indica a ordem na qual cada membro ingressou no cluster e qual membro é o Líder. A propriedade Current indica a instância que você está administrando no momento.

Para cada instância do cluster, é possível ver várias propriedades relacionadas à topologia:

  • Uma lista de permissões de tópicos para o consumidor de trabalho do exemplo.
  • Os pontos finais expostos para conexão com a topologia.
  • Os tópicos da tarefa para os quais a instância está registrada para descarregamento.
  • Os tópicos da tarefa que a instância processa.
  1. Usando a interface de usuário para toque, clique na guia Ferramentas. (http://localhost:4502/tools.html)

  2. Na área Operações de granito, clique em Descarregamento do navegador.

  3. No painel de navegação, clique em Navegador de topologia.

    Os clusters que estão participando da topologia são exibidos.

    chlimage_1-111

  4. Clique em um cluster para ver uma lista das instâncias no cluster e sua ID, status atual e status de pontilhado.

  5. Clique em uma ID de instância para ver as propriedades mais detalhadas.

Você também pode usar o Console da Web para obter informações sobre topologia de visualização. O console fornece mais informações sobre os clusters de topologia:

  • Qual instância é a instância local.
  • Os serviços do Conector de topologia que esta instância usa para se conectar à topologia (de saída) e aos serviços que se conectam a essa instância (de entrada).
  • Alterar histórico das propriedades de topologia e instância.

Use o seguinte procedimento para abrir a página Gerenciamento de topologia do Console da Web:

  1. Abra o Console da Web em seu navegador. (http://localhost:4502/system/console)

  2. Clique em Principal > Gerenciamento de topologia.

    chlimage_1-112

Configurando a associação de topologia

O serviço de descoberta baseado em recursos do Apache Sling é executado em cada instância para controlar como as instâncias do Experience Manager interagem com uma topologia.

O serviço Discovery envia solicitações POST periódicas (pulsações) aos serviços do Topology Connector para estabelecer e manter conexões com a topologia. O serviço Topology Connector mantém uma lista de permissões de endereços IP ou nomes de host que podem participar da topologia:

  • Para unir uma instância a uma topologia, especifique o URL do serviço Conector de topologia do membro raiz.
  • Para permitir que uma instância participe de uma topologia, adicione a instância à lista de permissões do serviço Conector de topologia do membro raiz.

Use o console da Web ou um nó sling:OsgiConfig para configurar as seguintes propriedades do serviço org.apache.sling.detection.impt.Config:

Nome da Propriedade Nome OSGi Descrição Valor padrão
Tempo limite do Heartbeat (segundos) HeartbeatTimeout A quantidade de tempo em segundos para aguardar uma resposta de pulsação antes que a instância de destino seja considerada indisponível. 20
Intervalo de pulsação (segundos) HeartbeatInterval A quantidade de tempo em segundos entre as pulsações. 15
Atraso mínimo no Evento (segundos) minEventDelay

Quando uma alteração ocorre na topologia, o tempo necessário para atrasar a alteração de estado de TOPOLOGY_CHANGING para TOPOLOGY_CHANGED. Cada alteração que ocorre quando o estado é TOPOLOGY_CHANGING aumenta o atraso nessa quantidade de tempo.

Esse atraso impede que os ouvintes sejam inundados com eventos.

Para não usar atraso, especifique 0 ou um número negativo.

3
URLs do conector de topologia topologyConnectorUrls Os URLs dos serviços do Topology Connector para enviar mensagens de pulsação. http://localhost:4502/libs/sling/topology/connector
Lista de permissões do conector de topologia topologyConnectorWhitelist A lista de endereços IP ou nomes de host que o serviço local do Topology Connector permite na topologia.

localhost

127.0.0.1

Nome do descritor do repositório leaderElectionRepositoryDescriptor <sem valor>

Use o procedimento a seguir para conectar uma instância do CQ ao membro raiz de uma topologia. O procedimento aponta a instância para o URL do Conector de topologia do membro de topologia raiz. Execute esse procedimento em todos os membros da topologia.

  1. Abra o Console da Web em seu navegador. (http://localhost:4502/system/console)
  2. Clique em Principal > Gerenciamento de topologia.
  3. Clique em Configurar serviço de descoberta.
  4. Adicione um item à propriedade URLs do conector de topologia e especifique o URL do serviço do conector de topologia raiz. O URL está no formato https://rootservername:4502/libs/sling/topology/connector.

Execute o seguinte procedimento no membro raiz da topologia. O procedimento adiciona os nomes dos outros membros da topologia à lista de permissões do Discovery Service.

  1. Abra o Console da Web em seu navegador. (http://localhost:4502/system/console)
  2. Clique em Principal > Gerenciamento de topologia.
  3. Clique em Configurar serviço de descoberta.
  4. Para cada membro da topologia, adicione um item à propriedade de lista de permissões do Conector de topologia e especifique o nome do host ou endereço IP do membro da topologia.

Configurando o Consumo de Tópico

Use o navegador de descarga para configurar o consumo de tópicos das instâncias de Experience Manager na topologia. Para cada instância, é possível especificar os tópicos que ela consome. Por exemplo, para configurar sua topologia de forma que somente uma instância consuma tópicos de um tipo específico, desative o tópico em todas as instâncias, exceto uma.

Os trabalhos são instâncias distribuídas de quantidade que têm o tópico associado ativado usando a lógica round-robin.

  1. Usando a interface de usuário para toque, clique na guia Ferramentas. (http://localhost:4502/tools.html)

  2. Na área Operações de granito, clique em Descarregamento do navegador.

  3. No painel de navegação, clique em Descarregamento do navegador.

    Os tópicos de descarga e as instâncias do servidor que podem consumir os tópicos são exibidos.

    chlimage_1-113

  4. Para desativar o consumo de um tópico para uma instância, abaixo do nome do tópico, clique em Desativar ao lado da instância.

  5. Para configurar todo o consumo de tópico de uma instância, clique no identificador de instância abaixo de qualquer tópico.

    chlimage_1-115

  6. Clique em um dos seguintes botões ao lado de um tópico para configurar o comportamento de consumo da instância e clique em Salvar:

    • Ativado: Esta instância consome trabalhos deste tópico.
    • Desativado: Esta instância não consome trabalhos deste tópico.
    • Exclusivo: Essa instância consome trabalhos apenas deste tópico.

    Observação: quando você seleciona Exclusivo para um tópico, todos os outros tópicos são automaticamente definidos como Desativado.

Consumidores de trabalho instalados

Várias implementações do JobConsumer são instaladas com o Experience Manager. Os tópicos para os quais esses Consumidores de trabalho estão registrados são exibidos no Navegador de descarga. Os tópicos adicionais que aparecem são aqueles que JobConsumers personalizados registraram. A tabela a seguir descreve o JobConsumers padrão.

Tópico do trabalho PID do serviço Descrição
/ org.apache.sling.event.impl.jobs.deprecated.EventAdminBridge Instalado com o Apache Sling. Processa trabalhos que o administrador do evento OSGi gera, para compatibilidade com versões anteriores.
com/day/cq/Replication/job/&ast; com.day.cq.replication.impl.AgentManagerImpl Um agente de replicação que replica cargas de trabalho.
com/adobe/granite/workflow/offloading com.adobe.granite.workflow.core.offloading.WorkflowOffloadingJobConsumer Processa trabalhos que o fluxo de trabalho do DAM Update Asset Offloader gera.

Desabilitando e habilitando tópicos para uma instância

O serviço Apache Sling Job Consumer Manager fornece propriedades de lista de permissões e lista de bloqueios de tópicos. Configure essas propriedades para ativar ou desativar o processamento de tópicos específicos em uma instância do Experience Manager.

Observação: se a instância pertencer a uma topologia, você também poderá usar o Navegador de descarga em qualquer computador na topologia para ativar ou desativar tópicos.

A lógica que cria a lista de tópicos ativados primeiro permite todos os tópicos que estão na lista de permissões e, em seguida, remove tópicos que estão na lista de bloqueios. Por padrão, todos os tópicos estão ativados (o valor da lista de permissões é *) e nenhum tópico está desativado (a lista de bloqueios não tem valor).

Use o Console da Web ou um nó sling:OsgiConfig para configurar as seguintes propriedades. Para nós sling:OsgiConfig, o PID do serviço Gerenciador de Consumidores de Trabalho é org.apache.sling.evento.impl.jobs.JobConsumerManager.

Nome da propriedade no console da Web ID do OSGi Descrição
Lista de permissões do tópico job.consumermanager.whitelist Uma lista de tópicos que o serviço local do JobManager processa. O valor padrão do &ast; faz com que todos os tópicos sejam enviados para o serviço TopicConsumer registrado.
Lista negra de tópicos job.consumermanager.blacklist Uma lista de tópicos que o serviço local do JobManager não processa.

Criando Agentes de Replicação para Descarregamento

A estrutura de descarga usa replicação para transportar recursos entre o autor e o trabalhador. A estrutura de descarga cria automaticamente agentes de replicação quando as instâncias ingressam na topologia. Os agentes são criados com valores padrão. Você deve alterar manualmente a senha que os agentes usam para autenticação.

CUIDADO

Um problema conhecido com os agentes de replicação gerados automaticamente requer a criação manual de novos agentes de replicação. Siga o procedimento em Problemas ao usar os agentes de replicação gerados automaticamente antes de criar os agentes para descarga.

Crie os agentes de replicação que transportam cargas de trabalho entre instâncias para descarregamento. A ilustração a seguir mostra os agentes que devem ser descarregados do autor para uma instância de trabalho. O autor tem uma Sling ID de 1 e a instância do trabalhador tem uma Sling ID de 2:

chlimage_1-115

Essa configuração exige os três agentes a seguir:

  1. Um agente de saída na instância do autor que é replicado para a instância do trabalhador.
  2. Um agente reverso na instância do autor que puxa da caixa de saída na instância do trabalhador.
  3. Um agente da caixa de saída na instância do trabalhador.

Esse esquema de replicação é semelhante ao usado entre as instâncias de autor e publicação. No entanto, para a situação de descarregamento, todas as instâncias envolvidas são instâncias de criação.

OBSERVAÇÃO

A estrutura de descarga usa a topologia para obter os endereços IP das instâncias de descarga. A estrutura então cria automaticamente os agentes de replicação com base nesses endereços IP. Se os endereços IP das instâncias de descarga forem alterados posteriormente, a alteração será propagada automaticamente na topologia depois que a instância for reiniciada. No entanto, a estrutura de descarga não atualiza automaticamente os agentes de replicação para refletir os novos endereços IP. Para evitar essa situação, use endereços IP fixos para todas as instâncias na topologia.

Nomear os agentes de replicação para descarregamento

Use um formato específico para a propriedade Name dos agentes de replicação para que a estrutura de descarga use automaticamente o agente correto para instâncias de trabalho específicas.

Nomear o agente de saída na instância do autor:

offloading_<slingid>, onde <slingid> é a Sling ID da instância do trabalhador.

Exemplo: offloading_f5c8494a-4220-49b8-b079-360a72f71559

Nomear o agente reverso na instância do autor:

offloading_reverse_<slingid>, onde <slingid> é a Sling ID da instância do trabalhador.

Exemplo: offloading_reverse_f5c8494a-4220-49b8-b079-360a72f71559

Nomear a caixa de saída na instância do trabalhador:

offloading_outbox

Criando o agente de saída

  1. Crie um Agente de Replicação no autor. (Consulte a documentação para agentes de replicação). Especifique qualquer Título. O Name deve seguir a convenção de nomenclatura.

  2. Crie o agente usando as seguintes propriedades:

    Propriedade Valor
    Configurações > Tipo de serialização Padrão
    Transporte >URI de transporte https://<ip of target instance>:<port>/bin/receive?sling:authRequestLogin=1
    Transporte > Usuário de transporte Usuário de replicação na instância do público alvo
    Transporte > Senha de transporte Senha do usuário de replicação na instância do público alvo
    Estendido > Método HTTP POST
    Acionadores > Ignorar padrão Verdadeiro

Criando o agente reverso

  1. Crie um Agente de Replicação Inverso no autor. (Consulte a documentação para agentes de replicação.) Especifique qualquer Título. O Name deve seguir a convenção de nomenclatura.

  2. Crie o agente usando as seguintes propriedades:

    Propriedade Valor
    Configurações > Tipo de serialização Padrão
    Transporte >URI de transporte https://<ip of target instance>:<port>/bin/receive?sling:authRequestLogin=1
    Transporte > Usuário de transporte Usuário de replicação na instância do público alvo
    Transporte > Senha de transporte Senha do usuário de replicação na instância do público alvo
    Estendido > Método HTTP GET

Criação do agente da caixa de saída

  1. Crie um Agente de Replicação na instância do trabalhador. (Consulte a documentação para agentes de replicação.) Especifique qualquer Título. O Name tem de ser offloading_outbox.

  2. Crie o agente usando as seguintes propriedades.

    Propriedade Valor
    Configurações > Tipo de serialização Padrão
    Transporte >URI de transporte repo://var/replication/outbox
    Acionador > Ignorar padrão Verdadeiro

Localizando a ID do Sling

Obtenha a Sling ID de uma instância Experience Manager usando um dos seguintes métodos:

  • Abra o Console Web e, nas Configurações Sling, localize o valor da propriedade Sling ID (http://localhost:4502/system/console/status-slingsettings). Esse método é útil se a instância ainda não fizer parte da topologia.
  • Use o navegador Topologia se a instância já fizer parte da topologia.

Descarregamento do processamento de ativos DAM

Configure as instâncias de uma topologia para que instâncias específicas executem o processamento em segundo plano de ativos adicionados ou atualizados no DAM.

Por padrão, o Experience Manager executa o fluxo de trabalho Atualizar ativo DAM quando um ativo DAM é alterado ou um é adicionado ao DAM. Altere o comportamento padrão para que o Experience Manager execute o fluxo de trabalho do DAM Update Asset Offloader. Este fluxo de trabalho gera um trabalho do JobManager que tem um tópico de com/adobe/granite/workflow/offloading. Em seguida, configure a topologia para que o trabalho seja descarregado para um funcionário dedicado.

CUIDADO

Nenhum fluxo de trabalho deve ser temporário quando usado com a descarga do fluxo de trabalho. Por exemplo, o fluxo de trabalho Atualizar ativo do DAM não deve ser temporário quando usado para descarregamento de ativos. Para definir/desdefinir o sinalizador transitório em um fluxo de trabalho, consulte Workflows transitórios.

O procedimento a seguir assume as seguintes características para a topologia de descarga:

  • Uma ou mais instâncias de Experience Manager estão criando instâncias com as quais os usuários interagem para adicionar ou atualizar ativos DAM.
  • Os usuários não devem interagir diretamente com uma ou mais instâncias de Experience Manager que processam os ativos DAM. Essas instâncias são dedicadas ao processamento em segundo plano de ativos DAM.
  1. Em cada instância de Experience Manager, configure o serviço Discovery para que aponte para o conector Topografia raiz. (Consulte Configurando a associação de topologia.)

  2. Configure o Conector de Topografia raiz para que as instâncias de conexão estejam na lista de permissões.

  3. Abra o navegador de descarga e desative o tópico com/adobe/granite/workflow/offloading nas instâncias com as quais os usuários interagem para carregar ou alterar ativos do DAM.

    chlimage_1-116

  4. Em cada instância com a qual os usuários interagem para carregar ou alterar ativos DAM, configure os iniciadores de fluxo de trabalho para usar o fluxo de trabalho de Descarregamento de ativos de atualização DAM:

    1. Abra o console Fluxo de trabalho.
    2. Clique na guia Iniciador.
    3. Localize as duas configurações do Iniciador que executam o fluxo de trabalho do Ativo de atualização do DAM. Um tipo de evento de configuração do iniciador é Nó criado e o outro tipo é Nó modificado.
    4. Altere ambos os tipos de evento para que eles executem o fluxo de trabalho de Descarregamento de ativos de atualização de DAM. (Para obter informações sobre configurações de iniciador, consulte Iniciar Workflows quando nós mudarem.)
  5. Nas instâncias que executam o processamento em segundo plano de ativos DAM, desative os iniciadores de fluxo de trabalho que executam o fluxo de trabalho do Ativo de atualização DAM.

Leitura adicional

Além dos detalhes apresentados nesta página, você também pode ler o seguinte:

Nesta página