雲訊息佇列 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)
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組網,可以使用公網存取點訪問服務。公網存取點需要支付額外的公網下行流量費用,具體資訊,請參見公網流量定價詳情。