全部產品
Search
文件中心

ApsaraMQ for RocketMQ:使用須知

更新時間:Sep 26, 2024

雲訊息佇列 RocketMQ 版提供了通過HTTP協議的多語言SDK接入的能力,並支援公網訪問。本文介紹HTTP協議下的多語言SDK的版本說明。

多語言支援

雲訊息佇列 RocketMQ 版支援RESTful風格的HTTP協議通訊,並提供了7種語言的SDK。HTTP協議的SDK所支援的功能通過不斷迭代,與TCP協議的SDK所支援的功能逐漸對齊。HTTP協議的迭代版本所支援的功能與TCP協議功能對比說明,請參見:

注意事項

  • HTTP協議下,消費者支援通過長輪詢和短輪詢方式擷取雲訊息佇列 RocketMQ 版服務端中的訊息進行消費。

    • 長輪詢:消費者向服務端發送請求擷取指定Topic中的訊息,若Topic中沒有訊息,服務端不會立即返迴響應,會將該請求掛起,直到Topic有訊息或達到長輪詢時間才會返迴響應。

    • 短輪詢:若Topic中沒有訊息,服務端會立即返迴響應,且再次不斷髮起訂閱請求。

    配置方式如下:

    • 長輪詢:發起訂閱請求時,將waitSeconds參數設定為0或不設定。

    • 短輪詢:發起訂閱請求時,將waitSeconds參數設定為大於0,最大值為30秒。

    具體介面說明,請參見訂閱訊息API

    當Topic中沒有訊息產生時,短輪詢方式可能會產生大量無效的訂閱請求,這部分請求也會仍然計算API調用費用,建議您可以使用長輪詢方式適當增加長輪詢等待時間,減少無效請求次數以降低費用。具體API調用費用計算方式,請參見API調用費用

    重要

    消費者在採用HTTP協議發起消費請求時,為確保Message Service的穩定性及消費訊息的及時性,當消費者串連數超過100個,長輪詢將退化為短輪詢。請注意控制消者串連數量,以免退化短輪詢產生過多的無效請求次數,從而增加您的成本。

  • 支援HTTP協議SDK接入為雲訊息佇列 RocketMQ 版商業版的增強功能,開源自建RocketMQ叢集不支援該功能,無法使用HTTP協議的SDK接入。

  • 確保您需要訪問的資源和HTTP存取點在同一地區。

    例如您的雲訊息佇列 RocketMQ 版執行個體在華東1(杭州)地區,則只能使用華東1(杭州)地區的存取點來訪問該地區的執行個體。您可以實現以下情境的資源訪問:

    • 如果您的用戶端在華東1(杭州)地區,為了最佳體驗,請使用該執行個體的HTTP內網存取點訪問該執行個體資源。

    • 如果您的用戶端在華東1(杭州)以外的任一地區,請確保用戶端可連上互連網,並使用該執行個體的HTTP公網存取點訪問該執行個體資源。

  • TCP協議的用戶端和HTTP協議的用戶端之間可以實現訊息收發。但由於HTTP協議採用XML序列化,因此訊息的屬性、內容、Tag、Key等必須符合XML規範。

    說明

    XML的規範詳情,請參見XML文法。您也可按需使用第三方工具xml_validator校正XML文法的規範性。

    如果包含了不符合XML規範的相關字元,那麼可能出現以下情況:

    • 採用HTTP協議發送訊息時,發送訊息失敗。

    • 採用TCP協議發送訊息,HTTP協議消費訊息時,消費訊息失敗。

    您可以自行採用Base64編碼對發送的訊息進行編(解)碼,以適用於此類不符合XML規範的訊息收發情境。