全部產品
Search
文件中心

ApsaraMQ for RocketMQ:SDK參考概述

更新時間:Sep 25, 2025

雲訊息佇列 RocketMQ 版支援TCP協議和HTTP協議的多語言SDK,本文為您介紹這兩種協議SDK的差異和使用說明。

各版本SDK說明

雲訊息佇列 RocketMQ 版各版本SDK和功能支援情況如下所示:

下表中的✅表示支援該功能,❌表示不支援該功能。

對比項

RocketMQ 5.x gRPC SDK

RocketMQ 5.x Remoting SDK

RocketMQ 4.x/3.x SDK

RocketMQ ONS TCP 1.x SDK

RocketMQ ONS TCP 2.x SDK

RocketMQ ONS HTTP SDK

協議

gRPC協議v2

Remoting協議

Remoting協議

Remoting協議

gRPC協議v1

HTTP協議

可訪問的執行個體

5.x系列執行個體

  • 5.x系列執行個體

  • 4.x系列執行個體

  • 5.x系列執行個體

  • 4.x系列執行個體

  • 5.x系列執行個體

  • 4.x系列執行個體

4.x系列執行個體

4.x系列執行個體

使用建議

推薦5.x gRPC SDK。

  • 多語言支援完善。

  • 後續所有新的功能和最佳化將會在5.x gRPC SDK上得到支援。

  • 如果5.x gRPC SDK的某些功能不能滿足需求,則可以考慮使用5.x Remoting SDK。

  • 原業務已使用這些版本的用戶端可繼續正常使用。

  • 5.x系列執行個體相容這些版本的SDK。

  • 不推薦使用這些版本的用戶端,這些版本的SDK不支援後續的新功能和最佳化。

  • 只能訪問4.x系列執行個體。

普通、順序、事務、定時訊息的發送功能

並發消費

順序消費

順序消費消費並發度最佳化

廣播消費

流式消費(串連 Flink 等)

訊息軌跡

4.5.2及以上版本支援

生產者消費者用戶端Metrics 指標資料

優雅下線

僅支援5.x系列執行個體

SDK使用限制

  • 同一個ConsumerGroup下的不同 Consumer 使用相同協議的用戶端。

  • 同一ConsumerGroup下,從Remoting協議SDK升級至gRPC協議SDK的灰階過程中的注意事項:

    • 順序投遞的ConsumerGroup暫不支援升級。

    • 並發投遞的ConsumerGroup可以支援平滑升級,期間會有少量訊息重複。

  • 順序投遞ConsumerGroup如果同時滿足以下a、b、c 三個步驟,會有順序消費位點回退的風險:

    1. 該順序consumerGroup先使用Remoting協議SDK運行。

    2. 因為業務需要將SDK升級為gRPC協議SDK。

    3. 將SDK回退到了Remoting協議SDK。

  • RocketMQ ONS TCP 2.x SDK只支援部分地區,詳情請參見使用限制

TCP協議

重要

社區版SDK僅在遷移開源RocketMQ上雲且不希望修改代碼時使用,其他情境推薦您使用阿里雲雲訊息佇列 RocketMQ 版提供的商業版SDK進行接入。和社區版SDK相比,商業版SDK提供了更加豐富的功能特性並具有更高的穩定性保障。

商業版TCP協議SDK(ONS 1.x/2.x SDK)

HTTP協議

商業版HTTP協議SDK(多語言推薦)

TCP和HTTP協議SDK差異對比

TCP協議SDK和HTTP協議SDK支援的功能有所差異,請您根據業務需求提前評估需要使用的協議類型。

SDK協議類型

TCP協議SDK

HTTP協議SDK

選擇建議

建議優先選擇

  • 傳輸效能好,適用於高並發情境。

  • 訊息功能更完整,迭代速度快。

  • 可觀測性指標更豐富,訊息堆積、訊息重設等功能更完善。

備用方案選擇

  • 多語言接入的補充方案,TCP協議暫不支援某些語言時可以選擇HTTP協議。

  • 輕量接入、功能概念少、適用於簡單情境。

普通訊息

支援

支援

順序訊息

支援

支援

定時和延時訊息

支援

支援

事務訊息

支援

支援

PushConsumer

支援

不支援

PullConsumer

支援

不支援

批量消費

支援

不支援

廣播消費

支援

不支援

叢集消費

支援

支援

訊息重試

支援

支援

查詢訊息軌跡

支援

支援

無效信件佇列

支援

支援

重設消費位點

支援

不支援

SDK使用說明

  • HTTP協議和TCP協議的存取點不可混用。例如,您使用TCP協議的SDK收發訊息,您需要擷取TCP協議的存取點接入雲訊息佇列 RocketMQ 版服務端。

  • 雲訊息佇列 RocketMQ 版支援HTTP協議和TCP協議的Group ID,不同類型的Group ID不能混用。例如,使用TCP協議的SDK收發訊息,則您需要建立TCP協議Group ID。

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

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

    說明

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

  • TCP協議和HTTP協議在各地區均提供公網和內網存取點。生產環境預設推薦使用VPC專用網路走內網訪問服務;如果需要跨地區、線下IDC、公網網路訪問,且當前無法使用CEN組網,可以使用公網存取點訪問服務。公網存取點需要支付額外的公網下行流量費用,具體資訊,請參見公網流量定價詳情