すべてのプロダクト
Search
ドキュメントセンター

ApsaraMQ for RabbitMQ:AMQProxy を使用したクライアント接続の再利用

最終更新日:Mar 08, 2026

AMQProxy は、AMQP 接続を再利用するオープンソースの高度なメッセージキューイングプロトコル (AMQP) プロキシサービスです。このプロキシサービスにより、PHP クライアントなど、短時間接続のみをサポートするクライアントが接続保持を使用できるようになります。これにより、ネットワークと ApsaraMQ for RabbitMQ の両方のリソース消費が削減されます。

前提条件

AMQProxy と ApsaraMQ for RabbitMQ の間で SSL 接続を使用する場合は、ご利用のクライアントサーバーに OpenSSL がインストールされていることを確認してください。詳細については、「ダウンロード」をご参照ください。

重要

VPC 環境では、ApsaraMQ for RabbitMQ への SSL 接続はサポートされていません。

背景情報

PHP などの一部の言語のクライアントは、接続保持を使用できません。これらのクライアントは頻繁に接続を開閉します。これにより、大量のネットワークおよび ApsaraMQ for RabbitMQ リソースを消費し、ApsaraMQ for RabbitMQ に大きな負荷をかけます。

dg_AMQP Proxy_1

AMQProxy

AMQProxy は、Cloud AMQP が提供するオープンソースの AMQP プロキシサービスです。これにより、クライアントは ApsaraMQ for RabbitMQ との接続保持を維持できます。クライアントサーバーに AMQProxy をデプロイすると、クライアントと ApsaraMQ for RabbitMQ の間のすべてのリクエストは AMQProxy を介してルーティングされます。

AMQProxy は、クライアントからの接続リクエストを次のように処理します。

  • クライアントが接続を開くことをリクエストすると、AMQProxy はユーザー名、パスワード、および Vhost に基づいて再利用する適切な接続をチェックします。一致が見つかった場合、AMQProxy は接続を再利用します。それ以外の場合、AMQProxy はクライアントの代わりに ApsaraMQ for RabbitMQ への新しい接続を開きます。

  • クライアントが接続を閉じることをリクエストすると、AMQProxy はすぐに OK 確認応答を送信しますが、ApsaraMQ for RabbitMQ への実際の接続は閉じません。クライアントが後で新しい接続をリクエストすると、AMQProxy は既存の接続を再利用します。

dg_AMQP Proxy_2

AMQProxy の詳細については、「AMQProxy」をご参照ください。

AMQProxy のデプロイ

  1. 次のコマンドを実行して、AMQProxy パッケージをダウンロードします。

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

    このトピックでは、AMQProxy 0.4.4 を例として使用します。他のバージョンの AMQProxy の詳細については、「リリース」をご参照ください。

  2. 次のコマンドを実行して、AMQProxy パッケージを解凍します。

    tar -xzvf amqproxy-0.4.4-1.linux-x86_64-static.tar.gz
  3. 次のコマンドを実行して、AMQProxy ディレクトリに移動します。

    cd amqproxy/
  4. 次のコマンドを実行して、AMQProxy を起動します。

    ./amqproxy -l LISTEN_ADDRESS -p LISTEN_PORT AMQP_URL

    パラメーター

    説明

    LISTEN_ADDRESS

    AMQProxy の IP アドレス。AMQProxy はクライアントサーバーにデプロイするため、ローカルアドレス 127.0.0.1 を使用できます。

    LISTEN_PORT

    AMQProxy のリスニングポート。クライアントリクエストは、このポートを介して AMQProxy に送信されます。5673 など、利用可能な任意のポートを使用できます。

    AMQP_URL

    ApsaraMQ for RabbitMQ インスタンスの URL。形式は {amqp|amqps}://{endpoint} です。

    • amqp: AMQP プロトコル。非 SSL 接続にはこのプロトコルを使用します。

    • amqps: AMQP/SSL プロトコル。SSL 接続にはこのプロトコルを使用します。

    • エンドポイント: ApsaraMQ for RabbitMQ インスタンスのエンドポイントです。ApsaraMQ for RabbitMQ コンソールの [インスタンスの詳細] ページで確認できます。詳細については、「インスタンスの詳細を表示」をご参照ください。

    コマンド例は次のとおりです。

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

    応答例は次のとおりです。

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

    パラメーター

    説明

    clients

    クライアントと AMQProxy 間の接続数。

    upstreams

    AMQProxy と ApsaraMQ for RabbitMQ インスタンス間の接続数。

  5. ご利用のクライアントコードで、ホストとポートを AMQProxy の IP アドレスとリスニングポートに変更します。

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