云消息隊列 RocketMQ 版支持TCP協議和HTTP協議的多語言SDK,本文為您介紹這兩種協議SDK的差異和使用說明。
SDK兼容性說明
云消息隊列 RocketMQ 版服務端版本和客戶端SDK版本的兼容情況如下:
服務端版本 | 協議 | 客戶端版本 | 兼容性 | 約束限制 |
5.x版本實例 | gRPC協議v2 | 兼容 | 云消息隊列 RocketMQ 版5.x版本實例的所有功能完全支持。 | |
Remoting協議 | 兼容 | 消息收發功能支持,但Trace、Metrics部分指標不支持展示。 說明 不支持展示的指標包括生產者指標和消費者指標。詳情參見:Metrics指標詳情。 | ||
兼容 | ||||
gRPC協議v1 | 云消息隊列 RocketMQ 版ONS TCP 2.x SDK | 不兼容 | 5.x版本實例暫不支持使用ONS TCP 2.x版本的SDK接入。 | |
HTTP協議 | 云消息隊列 RocketMQ 版ONS HTTP SDK | 不兼容 | 云消息隊列 RocketMQ 版5.x SDK不支持HTTP協議。 | |
4.x版本實例 | gRPC協議v2 | 云消息隊列 RocketMQ 版5.x SDK | 不兼容 | 4.x版本實例不支持使用5.x版本對應的SDK連接訪問。 |
Remoting協議 | 兼容 | 云消息隊列 RocketMQ 版4.x版本實例的功能完整支持。 | ||
兼容 | ||||
gRPC協議v1 | 兼容 | |||
HTTP協議 | 兼容 |
TCP協議
社區版SDK僅在遷移開源RocketMQ上云且不希望修改代碼時使用,其他場景推薦您使用阿里云云消息隊列 RocketMQ 版提供的商業版SDK進行接入。和社區版SDK相比,商業版SDK提供了更加豐富的功能特性并具有更高的穩定性保障。
商業版TCP協議SDK(ONS 1.x/2.x SDK)
社區版TCP協議SDK(4.x/3.x SDK)
HTTP協議
商業版HTTP協議SDK(多語言推薦)
TCP和HTTP協議SDK差異對比
TCP協議SDK和HTTP協議SDK支持的功能有所差異,請您根據業務需求提前評估需要使用的協議類型。
SDK協議類型 | TCP協議SDK | HTTP協議SDK |
選擇建議 | 建議優先選擇
| 備用方案選擇
|
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組網,可以使用公網接入點訪問服務。公網接入點需要支付額外的公網下行流量費用,具體信息,請參見公網流量定價詳情。