在調用HTTP協議的SDK收發消息前,您需在云消息隊列 RocketMQ 版控制臺創建相關資源。
前提條件
背景信息
針對TCP和HTTP兩種通信協議,云消息隊列 RocketMQ 版分別提供了多語言客戶端SDK來收發消息。建議您分別為兩種協議創建不同類型的Group ID,TCP協議和HTTP協議Group的使用限制說明,請參見Group管理。
網絡訪問限制
在使用云消息隊列 RocketMQ 版時,請注意以下網絡訪問限制:
只有在同一個地域下的同一個實例中的Topic和Group ID才能互通,例如,某Topic創建在華東1(杭州)地域的實例A中,那么該Topic只能被在華東1(杭州)地域的實例A中創建的Group ID對應的生產端和消費端訪問。
云消息隊列 RocketMQ 版提供HTTP協議接入點和TCP協議接入點,接入點不能混用。例如,您使用的TCP協議SDK,則代碼中必須填寫TCP協議接入點,不能使用HTTP協議接入點。
TCP協議和HTTP協議在各地域均提供公網和內網接入點。生產環境默認推薦使用VPC專有網絡走內網訪問服務;如果需要跨地域、線下IDC、公網網絡訪問,且當前無法使用CEN組網,可以使用公網接入點訪問服務。公網接入點需要支付額外的公網下行流量費用,具體信息,請參見公網流量定價詳情。
創建實例
實例是用于云消息隊列 RocketMQ 版服務的虛擬機資源,會存儲消息主題(Topic)和客戶端ID(Group ID)信息。
在左側導航欄,單擊實例列表。
在頂部菜單欄,選擇地域,如華東1(杭州)。
在實例列表頁面,單擊創建實例。
在創建 RocketMQ 實例面板,選擇實例類型,并輸入名稱和描述,然后單擊確定。
創建Topic
Topic是云消息隊列 RocketMQ 版里對消息的一級歸類,例如創建名稱為Topic_Trade的Topic來識別交易類消息,消息生產者將消息發送到Topic_Trade,而消息消費者則通過訂閱該Topic來獲取和消費消息。Topic的使用說明如下:
Topic不能跨實例使用,例如在實例A中創建的Topic A不能在實例B中使用。
在同一實例中Topic名稱必須唯一。
您可創建不同的Topic來發送不同類型的消息,例如用Topic A發送普通消息,Topic B發送事務消息,Topic C發送定時和延時消息。
在實例所在頁面的左側導航欄,單擊Topic 管理。
在Topic 管理頁面,單擊創建 Topic。
在創建 Topic面板,輸入名稱和描述,選擇該Topic的消息類型為普通消息,然后單擊確定。
說明本文以收發普通消息為例進行說明,因此,您按照本文提供的步驟創建的普通消息的Topic,不能用于收發其他類型的消息。換言之,不同消息類型的Topic不能混用。消息類型的更多信息,請參見消息類型列表。
創建Group ID
用于標識同一類生產者實例或者同一類消費者實例。Group ID的使用說明如下:
單實例下最多創建1000個Group,建議您盡量復用或及時刪除不需要的Group。若您對Group數量有特殊需求,請聯系云消息隊列 RocketMQ 版技術支持申請。
Group ID不能跨實例使用,例如實例A中創建的Group ID不能在實例B中使用。
云消息隊列 RocketMQ 版支持HTTP協議和TCP協議的Group,不同的消費Group ID可以使用不同類型的協議消費消息,建議您分別為兩種協議創建對應類型的Group ID。
若多個消費者使用同一個Group ID消費消息,其中部分消費者使用TCP協議,部分消費者使用HTTP協議,可能會導致消費失敗、部分消息重復或丟失。
同一Group ID不能平滑地從一個消費協議切換到另一個協議,切換過渡時間大概需要1~2小時。
如果Group ID實際消費使用的協議和控制臺上展示的協議不一致,會導致控制臺上展示的相關數據不準確,但不會影響實際的消息收發。您可以聯系云消息隊列 RocketMQ 版技術支持申請將控制臺上Group ID的協議類型訂正為您實際使用的協議類型。
消費者必須有對應的Group ID,生產者不做強制要求。
在實例所在頁面的左側導航欄,單擊Group 管理。
在Group 管理頁面,選擇 。
在創建可用于 HTTP 協議的 Group面板,輸入Group ID和描述,然后單擊確定。
獲取接入點
在控制臺創建好資源后,您需通過控制臺獲取實例的接入點。在收發消息時,您需要為生產端和消費端配置該接入點,以接入某個具體實例或地域的服務。
在實例所在頁面的左側導航欄,單擊實例詳情。
在實例詳情頁面的HTTP 協議接入點區域可獲取實例的HTTP協議接入點。
接入點說明如下:
HTTP協議和TCP協議的接入點不可混用。例如,您使用HTTP協議的SDK收發消息,您需要獲取HTTP協議的接入點接入云消息隊列 RocketMQ 版服務端。
TCP協議和HTTP協議在各地域均提供公網和內網接入點。生產環境默認推薦使用VPC專有網絡走內網訪問服務;如果需要跨地域、線下IDC、公網網絡訪問,且當前無法使用CEN組網,可以使用公網接入點訪問服務。公網接入點需要支付額外的公網下行流量費用,具體信息,請參見公網流量定價詳情。
您在控制臺看到的HTTP協議接入點是某個地域的接入點,跟具體實例無關。您在收發消息時還需另外設置實例ID。
完成以上準備工作后,您就可以運行示例代碼,用云消息隊列 RocketMQ 版進行消息發送和訂閱了。