Todos os produtos
Search
Central de documentação

ApsaraMQ for RabbitMQ:Using AMQProxy for client connection reuse

Última atualização: Jul 10, 2026

O AMQProxy é um service de proxy de código aberto para o protocolo Advanced Message Queuing Protocol (AMQP) que reutiliza conexões AMQP. Esse service permite que clientes compatíveis apenas com conexões de curta duração, como os clientes PHP, utilizem conexões persistentes. Essa abordagem reduz o consumo de recursos tanto da rede quanto do ApsaraMQ for RabbitMQ.

Pré-requisitos

Caso deseje estabelecer uma conexão SSL entre o AMQProxy e o ApsaraMQ for RabbitMQ, verifique se o OpenSSL está instalado no servidor cliente. Para mais informações, consulte Downloads.

Informações básicas

Clientes desenvolvidos em certas linguagens, como PHP, não suportam conexões persistentes e abrem e fecham conexões com frequência. Esse comportamento consome uma quantidade significativa de recursos de rede e do ApsaraMQ for RabbitMQ, gerando uma carga elevada sobre o ApsaraMQ for RabbitMQ.

dg_AMQP Proxy_1

AMQProxy

O AMQProxy é um service de proxy AMQP de código aberto fornecido pela Cloud AMQP. Ele possibilita que os clientes mantenham conexões persistentes com o ApsaraMQ for RabbitMQ. Após implantar o AMQProxy no servidor cliente, todas as requisições entre o cliente e o ApsaraMQ for RabbitMQ passam pelo AMQProxy.

O AMQProxy processa as requisições de conexão dos clientes da seguinte forma:

  • Ao receber uma solicitação para abrir uma conexão, o AMQProxy busca uma conexão adequada para reutilizar com base no nome de usuário, senha e Vhost. Se encontrar uma correspondência, ele reutiliza a conexão existente; caso contrário, abre uma nova conexão com o ApsaraMQ for RabbitMQ em nome do cliente.

  • Quando o cliente solicita o fechamento de uma conexão, o AMQProxy envia imediatamente um reconhecimento OK, mas mantém ativa a conexão real com o ApsaraMQ for RabbitMQ. Assim, quando o cliente precisar de uma nova conexão posteriormente, o AMQProxy reutilizará a conexão já estabelecida.

dg_AMQP Proxy_2

Para obter mais detalhes sobre o AMQProxy, consulte AMQProxy.

Implantação do AMQProxy

  1. Baixe o pacote do AMQProxy executando o comando abaixo.

    wget https://github.com/cloudamqp/amqproxy/releases/download/v0.4.4/amqproxy-0.4.4-1.linux-x86_64-static.tar.gz
    Nota

    Este tópico utiliza o AMQProxy 0.4.4 como exemplo. Para informações sobre outras versões, acesse Releases.

  2. Execute o comando a seguir para descompactar o pacote do AMQProxy.

    tar -xzvf amqproxy-0.4.4-1.linux-x86_64-static.tar.gz
  3. Acesse o diretório do AMQProxy executando este comando.

    cd amqproxy/
  4. Inicie o AMQProxy com o comando abaixo.

    ./amqproxy -l LISTEN_ADDRESS -p LISTEN_PORT AMQP_URL

    Parâmetro

    Descrição

    LISTEN_ADDRESS

    Endereço IP do AMQProxy. Como a implantação ocorre no próprio servidor cliente, é possível utilizar o endereço local 127.0.0.1.

    LISTEN_PORT

    Porta de escuta do AMQProxy, pela qual os clientes enviam suas requisições. Qualquer porta disponível pode ser usada, como a 5673.

    AMQP_URL

    URL da instância do ApsaraMQ for RabbitMQ, seguindo o formato {amqp|amqps}://{endpoint}.

    • amqp: protocolo AMQP padrão, indicado para conexões sem SSL.

    • amqps: protocolo AMQP sobre SSL, necessário para conexões seguras.

    • endpoint: endpoint da instância do ApsaraMQ for RabbitMQ. Você encontra essa informação na página Instance Details no console do ApsaraMQ for RabbitMQ. Consulte Visualizar detalhes da instância para mais informações.

    Exemplo de comando:

    ./amqproxy -l 127.0.0.1 -p 5673 amqps://188XXX420.mq-amqp.cn-hangzhou-a.aliyuncs.com

    Exemplo de resposta retornada:

    Proxy upstream: 188XXX420.mq-amqp.cn-hangzhou-a.aliyuncs.com:5671 TLS
    Proxy listening on 127.0.0.1:5673
    0 clients                0 upstreams

    Parâmetro

    Descrição

    clients

    Quantidade de conexões ativas entre os clientes e o AMQProxy.

    upstreams

    Total de conexões mantidas entre o AMQProxy e a instância do ApsaraMQ for RabbitMQ.

  5. Atualize o host e a porta no source do seu cliente para apontarem para o endereço IP e a porta de escuta do AMQProxy.

    factory.setHost("127.0.0.1");
    factory.setPort(5673);