Message Service

Message Service是阿里雲商用的訊息中介軟體服務,說明套用開發人員在套用元件之間自由地傳遞資訊和傳送通知。

免費開通 聯絡我們

Message Service

阿里雲Message Service是一種高效、可靠、可擴充的散發式訊息 佇列和通知服務,該服務支援並行作業,以促進在套用和分離的系統之間傳輸訊息。

阿里雲訊息佇列服務是一種雲端式的管理型服務,該服務可確保訊息至少被使用一次並允許多個製作者和消費者同時對同一訊息佇列進行動作。阿里雲Message Service根據“先進先出”準則執行,以確保訊息按照傳送的順序被使用。

阿里雲Message Service是一種隨用隨付服務,不需要任何前期投資,為您省去了獲得並擴充訊息傳送平台的麻煩。


優點

簡單

  • 便於使用的服務,擁有 SendMessage、ReceiveMessage 和 DeleteMessage 等 API。

  • 通過阿里雲Message Service,發揮標準 HTTP RESTful 介面的優勢。

  • 一種免維修服務,無需依賴任何平台。

  • 可與 ECS、RDS 等其他阿里雲服務相容。

可靠

  • 可跨多個可用性區域快速備份資料,確保可靠性達 99.9999999%。

  • 服務可用工時高達 99.99%。

  • 確保在有效期間限內成功傳送訊息。

安全

  • 通過鑒權機制提供多級安全。

  • 確保訊息儲存在佇列中並使其免於受到未經授權的存取。

可自訂的佇列屬性設定

  • 允許對佇列屬性進行個人化設定,以支援不同的套用場景。

  • 支援延遲自訂並按優先次序排列佇列。

產品詳情

阿里雲Message Service是一種按需、可靠且具有彈性的Message Service,使您的企業能夠在散發式套用之間移動資料並完成複雜任務。阿里雲Message Service是一種具有較高的可擴充性和可靠性的管理型服務,可說明您構建分離式容錯套用。


功能

與 RESTful API 相容

  • 您可以輕鬆構建訊息佇列,並將其與其他阿里雲服務相整合,以通過存取 RESTful API 構建強大的散發式部署。

延遲訊息

  • 支援延遲訊息。

  • 您可以使用 DelaySeconds 參數確定延遲期間,此參數可在使用 SendMessage 時指定。

延遲佇列

  • 您可以通過使用 CreateQueue 和 SetQueueAttribute 指定佇列服務的延遲期間。

並行讀寫

  • 多個建立者和消費者可同時對同一訊息佇列進行動作。

多元化的佇列屬性

  • 提供各種可供您個人化的訊息佇列服務圖樣,包括普通佇列、時延佇列和優先佇列。

使用入門

通過阿里雲管理主控台、命令列介面 (CLI) 和文件使用阿里雲Message Service,對複雜流程進行解耦,從而構建具有高彈性的系統。

通過 CLI 使用阿里雲Message Service

阿里雲Message Service使您能夠通過命令列介面安全地傳輸海量訊息並管理這些訊息。您可以下載並安裝訊息 CLI 資源套件,以啟用此服務。

通過管理主控台使用阿里雲Message Service

阿里雲管理主控台提供簡單的基於 Web 的使用者介面,您可以利用它存取和設定阿里雲Message Service (MNS)。

使用此主控台,您可以建立、修改、移除並監控佇列中已傳送的訊息。 要查看有關如何通過管理主控台使用阿里雲Message Service的分步指南,請閱讀此快速入門手冊

存取阿里雲文件

您可以使用阿里雲Message Service建立訊息佇列並獲得關於活動的通知。請閱讀阿里雲文件,更詳細地了解阿里雲Message Service的執行方式、如何監控佇列中的訊息以及Message Service的基本規則和設定。

資源

阿里雲Message Service是一種按需、可靠且具有彈性的Message Service,使您能夠在散發式套用之間移動資料並完成複雜的任務。

這些資源有助於您了解阿里雲Message Service是如何啟動並執行。

使用阿里雲管理主控台並存取阿里雲文件,發揮阿里雲Message Service的優勢。

以下是文件、SDK 及其他資源的連結。

開發人員資源

常見問題

1. 阿里雲Message Service有哪些主要功能?

Message Service可用於以下套用場景:

  • 您可以將阿里雲Message Service與阿里雲彈性計算服務、阿里雲物件儲存服務等其他產品相整合,以構建可靠、容錯和靈活的套用。

  • 您可以將訊息佇列服務用作工作佇列,以便佇列中的每條訊息都能代表一項任務並完成一個流程。這樣,您就可以對流程進行分解,並構建更具彈性的套用。不過,一個或多個阿里雲 ECS 可以讀取並執行佇列中的多項任務。

  • 您還可以儲存服務流程中關於重大活動的通知,在此流程中,每個活動在佇列中都有一則對應的訊息。需要擷取活動的套用可以讀取並處理對應的訊息。

2. 如何從不同地域存取阿里雲Message Service?

阿里雲Message Service提供各種端點,以便在下述各種地域中存取該服務:

地域公共網路位址專有網路位址
杭州mns.cn-hangzhou.aliyuncs.commns.cn-hangzhou-internal.aliyuncs.com
青島mns.cn-qingdao.aliyuncs.commns.cn-qingdao-internal.aliyuncs.com
北京mns.cn-beijing.aliyuncs.commns.cn-beijing-internal.aliyuncs.com
新加坡mns.ap-southeast-1.aliyuncs.commns.ap-southeast-1-internal.aliyuncs.com
美國西部mns.us-west-1.aliyuncs.commns.us-west-1-internal.aliyuncs.com/
深圳mns.cn-shenzhen.aliyuncs.commns.cn-shenzhen-internal.aliyuncs.com
上海mns.cn-shanghai.aliyuncs.commns.cn-shanghai-internal.aliyuncs.com

3. 阿里雲Message Service支援哪些種類的動作?

目前,阿里雲Message Service支援以下動作:

與佇列相關的動作

  • CreateQueue:建立一個新佇列。

  • SetQueueAttributes:修改佇列的屬性。

  • GetQueueAttributes:獲得現有佇列的屬性。

  • DeleteQueue:移除現有佇列。

  • ListQueue:清單一個帳號下的佇列。

與訊息相關的動作

  • SendMessage:使建立者能夠向指定佇列傳送訊息。

  • BatchSendMessage:使建立者能夠向指定佇列批量傳送訊息。

  • ReceiveMessage:使消費者能夠使用佇列中的訊息。

  • BatchReceiveMessage:使消費者能夠批量使用佇列中的訊息。

  • DeleteMessage:移除使用過的訊息。

  • BatchDeleteMessage:大量刪除使用過的訊息。

  • PeekMessage:使消費者能夠查看訊息。

  • BatchPeekMessage:使消費者能夠批量查看訊息。

  • ChangeMessageVisibility:變更已被使用的訊息仍然處於不活動狀態和可以再次使用的時間。

4. 與其他訊息佇列系統相比,阿里雲Message Service有哪些優勢?

與構建訊息佇列系統或使用商業或開源訊息和通知服務以管理佇列相比,阿里雲Message Service具有以下優勢:

  • 您無需進行大級別投資。

  • 您無需動用過多的硬體和管理資源,如果動用的硬體和管理資源過多,則將增加您的企業擁有成本。

  • 在使用複製和冗餘訊息儲存選項時,即使硬體發生故障,您的訊息也將會很安全。

  • 即使在即時部署中,當您建立訊息後,您也可以通過阿里雲管理主控台輕鬆作出變更。

5. 如何開始使用阿里雲Message Service

  • 建立一個阿里雲帳戶

  • 線上訂閱Message Service。

  • 現在,您可以開始執行基本的訊息作業,例如使用管理主控台建立和移除佇列、接收和傳送訊息等。

  • 您還可以參閱此 快速入門手冊,了解關於如何通過管理主控台使用阿里雲Message Service的分步指導。

  • 您還可以利用Message ServiceAPI開發包,將訊息佇列與您的套用相整合。

6. 如何在系統中標識訊息?

使用唯一的 MessageId 來標識佇列中的訊息。當向Message Service佇列傳送訊息時,將生成一個 MessageId,生成後不得變更。

7. 什麼是長輪詢?

長輪詢是一種從佇列中取出訊息的方式。長輪詢使阿里雲Message Service能夠等到佇列中有可用訊息後再傳送回應,這樣有助於減少空回應的數量。

8. 訊息佇列服務是否支援長輪詢?

是,Message Service支援長輪詢。

一旦訊息可用,長輪詢可立即以簡單且經濟的方式從Message Service佇列中取出訊息。

9. Message Service是否支援訊息先入先出 (FIFO)

支援,Message Service盡其最大努力來確保以 FIFO 方式使用訊息。但是,散發式訊息佇列的某些功能可能並不總是允許以訊息的傳送順序來使用訊息。

10. Message Service是否可以與其他阿里雲服務一起執行?

Message Service可以與彈性計算服務、物件儲存服務和物件表格服務等其他阿里雲服務一起執行,以提高套用的可靠性和可擴充性。

11. 下面是Message Service與其他阿里雲產品一起啟動並執行常用情況

  • 訊息佇列服務可以將訊息裝載到在 ECS 實例上啟動並執行套用中,以便訊息得到處理

  • ECS 實例可以讀取佇列,處理任務,然後將結果作為訊息張貼到另一Message Service佇列(可能由其他套用進行進一步處理)。

  • ECS 允許動態地對套用進行擴充,以便開發人員可以根據訊息量來靈活地構建計算實例以維修一致的效能。

12. 阿里雲Message Service如何確儲存儲資料的可靠性?

Message Service將所有佇列和訊息都儲存在由高可靠、高可用阿里雲資料中心組成的網路中。所有訊息都以冗餘圖樣儲存在多個伺服器中,因此,當發生伺服器故障時,可以從冗餘資料集區中擷取訊息。

13. Message Service如何許諾當多個消費者存取同一佇列時,不會丟失訊息或重複使用訊息?

每個Message Service佇列都具有可設定的 ChangeMessageVisibility 屬性(即從佇列中取出的訊息的不可見時間段屬性)。當佇列中的某條訊息被取出後,在不可見時間段內,其他消費者將無法追蹤到該條訊息。

  • 如果您在不可見時間段內完成使用,則將使用臨時控制代碼 (ReceiptHandle) 來移除訊息。

  • 如果您無法在不可見時間段內完成使用,您應該使用 (ChangeVisibilityTimeout) 傳送要求來延長不可見時間段。否則,當不可見時間段逾期後,訊息可能會被其他消費者獲得。

14. 使用阿里雲Message Service,每條訊息可以被接收多少次?

阿里雲Message Service的系統設計可確保您佇列中的所有訊息至少被使用一次。但是,建議您加強套用的容錯性,以便多次處理同一訊息時不會造成錯誤或不一致。

15. 阿里雲Message Service如何確保佇列中訊息的安全性?

阿里雲Message Service提供安全強固身份鑒權機制來防止訊息佇列受到未經授權的存取。只有阿里雲賬戶擁有者才能存取其建立的佇列。

16. 如何設定Message Service以支援更長的訊息保留期限?

要設定訊息保留期限,請使用 SetQueueAttributes 來設定 MessageRetentionPeriod 屬性。此屬性用於指定訊息在Message Service佇列中保留的時間。目前,訊息保留期限的預設值為 4 天。您可以將 MessageRetentionPeriod 設定為 1 分鐘至 15 天之間的一個值。

17. 訊息在Message Service中可以保留多久?

阿里雲Message Service的訊息保留期限的預設值為 4 天。但是,訊息保留期限是可設定的,您可以將其設定為 1 分鐘到 15 天之間的任何值。一旦達到訊息保留期限,您的訊息將被自動移除。

18. 如何設定Message Service以支援更大的訊息?

要設定最大訊息大小,請使用 SetQueueAttributes 來設定 MaximumMessageSize 屬性。此屬性用於指定訊息的位元組大小。可以將其設定為 1KB 到 64KB 之間的任何值。如果訊息長度超過了 64KB,建議將資料存放區到 OSS 中,Message Service只儲存資料存取位址。

19. 對於較長時間沒有任何訊息的佇列,會怎樣?

通常,阿里雲Message Service不會移除不活躍的佇列。但是,如果您的Message Service因為欠費或其他原因被停止了,那麼您的所有佇列都將被移除。

20. 不同區域中的同名佇列是同一個佇列嗎?

不是,不同區域的同名佇列是各自硬地的。