Como ativar a eliminação de duplicação de strings nos processadores de mensagens

Você está lendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

Este documento explica como ativar a deduplicação de strings nos processadores de mensagens do Apigee Edge.

A deduplicação de strings é um recurso Java que ajuda a economizar memória ocupada por objetos de string duplicados em aplicativos Java. Ela reduz o consumo de memória de objetos de string na memória heap Java fazendo com que os valores de string duplicados ou idênticos compartilhem a mesma matriz de caracteres.

O processador de mensagens do Apigee Edge é um componente baseado em Java. O uso da deduplicação de strings em um processador de mensagens pode melhorar o desempenho dos proxies de API, reduzindo o uso da memória, especialmente se os proxies de API fizerem uso intenso de strings.

O recurso de deduplicação de strings só pode ser usado com o coletor de lixo G1 (G1GC) em aplicativos Java. Se você quiser ativar esse recurso no processador de mensagens, já precisará ter o G1GC ativado ou ativar o G1GC e a deduplicação de strings juntos no processador de mensagens.

Antes de começar

Como ativar a deduplicação de strings nos processadores de mensagens

Esta seção explica como ativar o recurso de deduplicação de strings nos processadores de mensagens do Edge Processors. A deduplicação de strings pode ser ativada pela propriedade useStringDeduplication no componente do processador de mensagens. Por padrão, essa propriedade é definida como "false" nos processadores de mensagens. Para configurar qualquer propriedade no processador de mensagens, use o token de acordo com a sintaxe descrita em Como configurar o Edge.

Para ativar a deduplicação de strings nos processadores de mensagens, siga estas etapas:

  1. Localizar o token da propriedade useStringDeduplication
  2. Ativar useStringDeduplication no processador de mensagens

Localizar o token da propriedade useStringDeduplication

As etapas a seguir descrevem como localizar o token para useStringDeduplication:

  1. Pesquise a propriedade useStringDeduplication no diretório de origem do processador de mensagens /opt/apigee/edge-message-processor/source usando o seguinte comando:
    grep -ri "useStringDeduplication" /opt/apigee/edge-message-processor/source
  2. A saída desse comando mostra o token da propriedade useStringDeduplication do processador de mensagens da seguinte maneira:
    /opt/apigee/edge-message-processor/source/conf/system.properties:useStringDeduplication={T}conf_system_useStringDeduplication{/T}

    Em que a string entre as tags {T}{/T} é o nome do token que pode ser definido no arquivo .properties do processador de mensagens. Assim, o token da propriedade useStringDeduplication é o seguinte:

    conf_system_useStringDeduplication

Ativar a deduplicação de strings nos processadores de mensagens

As etapas a seguir descrevem como ativar a deduplicação de strings nos processadores de mensagens do Apigee:

  1. Abra o arquivo /opt/apigee/customer/application/message-processor.properties na máquina do processador de mensagens em um editor. Se o arquivo ainda não existir, crie-o. Por exemplo:
    vi /opt/apigee/customer/application/message-processor.properties
  2. Adicione a seguinte linha a esse arquivo:
    conf_system_useStringDeduplication=true
  3. Salve as alterações.
  4. Verifique se esse arquivo de propriedades pertence ao usuário apigee. Por exemplo:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. Reinicie o processador de mensagens usando o seguinte comando:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. Se você tiver mais de um processador de mensagens, repita essas etapas em todos eles.

Como verificar a deduplicação de strings nos processadores de mensagens

Esta seção explica como verificar se a deduplicação de strings foi ativada com sucesso nos processadores de mensagens.

Embora você use o token conf_system_useStringDeduplication para ativar a deduplicação de strings no processador de mensagens, é necessário verificar se a propriedade real useStringDeduplication foi definida com o novo valor da seguinte maneira:

  1. Pesquise a propriedade useStringDeduplication no /opt/apigee/edge-message-processor/conf diretório e verifique se ela foi definida com o novo valor. Por exemplo:
    grep -ri "useStringDeduplication" /opt/apigee/edge-message-processor/conf
  2. Se a deduplicação de strings for ativada com sucesso no processador de mensagens, o comando anterior mostrará o novo valor no arquivo system.properties.

    O resultado de amostra do comando anterior depois de ativar a deduplicação de strings no processador de mensagens é o seguinte:

    /opt/apigee/edge-message-processor/conf/system.properties:useStringDeduplication=true

    No exemplo de saída, observe que a propriedade useStringDeduplication foi definida com o novo valor true em system.properties. Isso indica que a deduplicação de strings foi ativada com sucesso no processador de mensagens.

  3. Se você ainda vir o valor antigo da propriedade useStringDeduplication, então verifique se seguiu todas as etapas descritas em Como ativar a deduplicação de strings nos processadores de mensagens corretamente. Se você perdeu alguma etapa, repita todas as etapas corretamente.
  4. Se ainda não for possível ativar a deduplicação de strings, entre em contato com o suporte do Apigee.

E agora?

Ativar o G1GC nos processadores de mensagens