日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用AMQProxy解決PHP等客戶端Connection復用問題

更新時間:

AMQProxy是一款開源AMQP代理服務,具備復用AMQP Connection的能力。您可以通過該代理服務使原本只能使用短連接的客戶端(例如PHP客戶端)使用長連接,從而減少網絡資源消耗和云消息隊列 RabbitMQ 版資源消耗。

前提條件

如果您要使用SSL連接AMQProxy和云消息隊列 RabbitMQ 版,請確保您的客戶端服務器已安裝OpenSSL。更多信息,請參見Downloads

重要

VPC環境下不支持使用SSL連接云消息隊列 RabbitMQ 版

背景信息

部分語言的客戶端,例如PHP客戶端,無法使用長連接,會頻繁地開啟或關閉Connection,消耗大量的網絡資源和云消息隊列 RabbitMQ 版資源,從而對云消息隊列 RabbitMQ 版造成巨大壓力。

dg_AMQP Proxy_1

AMQProxy

AMQProxy是Cloud AMQP提供的開源AMQP代理服務。客戶端可以通過該代理服務與云消息隊列 RabbitMQ 版保持長連接。當您在客戶端服務器部署AMQProxy后,客戶端和云消息隊列 RabbitMQ 版之間的請求都會先發送到AMQProxy,然后由AMQProxy轉發到對方。

AMQProxy處理客戶端發起的Connection相關請求的邏輯如下:

  • 如果客戶端發送開啟Connection的請求,AMQProxy將根據用戶名、密碼、Vhost查找當前是否有合適的Connection可以復用,如果有就復用該Connection,如果沒有就由AMQProxy代替客戶端和云消息隊列 RabbitMQ 版開啟Connection。

  • 如果客戶端發送關閉Connection的請求,AMQProxy會直接應答OK,但并不會關閉與云消息隊列 RabbitMQ 版的Connection,當該客戶端下次再請求開啟Connection時,AMQProxy會直接使用該Connection。

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版本,請參見Releases

  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

    云消息隊列 RabbitMQ 版實例的URL。格式為{amqp|amqps}://{endpoint}

    • amqp:AMQP協議。不使用SSL連接時使用。

    • amqps:AMQP/SSL協議。使用SSL連接時使用。

    • endpoint云消息隊列 RabbitMQ 版實例的接入點。您可以在云消息隊列 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的Connection數量。

    upstreams

    AMQProxy和云消息隊列 RabbitMQ 版實例的Connection數量。

  5. 在客戶端代碼中將Host和端口修改為AMQProxy IP地址和監聽端口。

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