Message Service

Message Service 是阿里雲商用的訊息中間件服務,幫助應用程式開發人員在應用程式組件之間自由地傳遞訊息和發送通知

阿里雲 Message Service 是一種高效率、可靠、可擴展的分佈式訊息隊列和通知服務,該服務支援並發操作,以促進在應用程式和分離的系統之間傳輸訊息。

阿里雲 Message Queue Service 是一種基於雲端的管理型服務,該服務可確保訊息至少被使用一次並允許多個製作者和使用者同時對同一訊息隊列進行操作。阿里雲 Message Service 根據「先進先出」原則運行,以確保訊息按照發送的順序被使用。

優點

安全
通過鑒權機制提供多級安全
確保訊息儲存在隊列中並使其免於受到未經授權的存取
可自定義的隊列屬性配置
允許對隊列屬性進行個性化配置,以支援不同的應用程式場景
支援延遲自定義並按優先次序排列隊列
兼容 RESTful API
您可以輕鬆構建訊息隊列,並將其與其他阿里雲服務相集成,以通過存取 RESTful API 構建强大的分佈式部署
並發讀寫
多個創建者和使用者可同時對同一訊息隊列進行操作

產品詳情

  • 簡單易用

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


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


    一種免保養服務,無需依賴任何平台。


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

  • 延遲訊息

    支援延遲訊息。
    您可以使用 DelaySeconds 參數確定延遲持續時間,此參數可在使用 SendMessage 時指定。

  • 延遲隊列

    您可以通過使用 CreateQueue 和 SetQueueAttribute 指定隊列服務的延遲持續時間。

  • 快速備份,高可靠性

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


    服務可用性高達 99.99%。


    確保在有效期限內成功發送訊息。

  • 多元化的隊列屬性

    提供各種可供您個性化的訊息隊列服務模式,包括普通隊列、時延隊列和優先隊列。

常見問題

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

Message Service 可用於以下應用程式場景:

• 您可以將阿里雲 Message Service 與 Elastic Compute Service、Object Storage Service 等其他産品相集成,以構建可靠、容錯和靈活的應用程式。
• 您可以將 Message Queue Service 用作工作隊列,以便隊列中的每條訊息都能代表一項任務並完成一個流程。這樣,您就可以對流程進行分解,並構建更具彈性的應用程式。不過,一個或多個阿里雲 ECS 可以讀取並執行隊列中的多項任務。
• 您還可以儲存服務流程中關於重大事件的通知,在此流程中,每個事件在隊列中都有一則對應的訊息。需要捕獲事件的應用程式可以讀取並處理對應的訊息。

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

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

Region 公共網絡地址 專用網絡地址
杭州 mns.cn-hangzhou.aliyuncs.com mns.cn-hangzhou-internal.aliyuncs.com
青島 mns.cn-qingdao.aliyuncs.com mns.cn-qingdao-internal.aliyuncs.com
北京 mns.cn-beijing.aliyuncs.com mns.cn-beijing-internal.aliyuncs.com
新加坡 mns.ap-southeast-1.aliyuncs.com mns.ap-southeast-1-internal.aliyuncs.com
美國西部 mns.us-west-1.aliyuncs.com mns.us-west-1-internal.aliyuncs.com/
深圳 mns.cn-shenzhen.aliyuncs.com mns.cn-shenzhen-internal.aliyuncs.com
上海 mns.cn-shanghai.aliyuncs.com mns.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 API開發包,將 Message Queue 與您的應用程式相集成。

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

使用唯一的 MessageId 來標識隊列中的消息。當向 Message Service 隊列發送訊息時,將產生一個 MessageId,產生後不得更改。

7. 甚麽是長時間輪詢?

長時間輪詢是一種從隊列中檢索訊息的方式。長時間輪詢使阿里雲 Message Service 能夠等到隊列中有可用訊息後再發送回應,這樣有助於减少空回應的數量。

8. Message Queue Service 是否支援長時間輪詢?

是,Message Service 支援長時間輪詢。

一旦訊息可用,長時間輪詢可立即以簡單且經濟的方式從 Message Service 隊列中檢索訊息。

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

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

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

Message Service 可以與 Elastic Compute Service、Object Storage Service 和 Object Table Service 等其他阿里雲服務一起運行,以提高應用程式的可靠性和可擴展性。

11. 下面是 Message Service 與其他阿里雲產品一起運行的常用情況

• Message Service 可以將訊息承載到在 ECS 實例上運行的應用程式中,以便訊息得到處理
• ECS 實例可以讀取隊列、處理任務,然後將結果作為訊息發佈到另一訊息服務隊列(可能由其他應用程式進行進一步處理)。
• 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 屬性。此屬性用於指定訊息在訊息服務隊列中保留的時間。目前,訊息保留期限的預設值為 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. 不同區域中的同名隊列是同一個隊列嗎?

不是,不同區域的同名隊列是各自獨立的。

為你提供最優質的服務

1對1售前諮詢、7x24技術服務、更快速的回應、更多的免費支援服務。

1對1售前諮詢

由經驗豐富的雲專家為不同規模企業客戶提供一對一的售前諮詢。了解更多

24/7 技術服務

售後服務時間從每周5天,每天10小時延長到每周7天,每天24小時。了解更多

更好的技術支援

基本售後支援計劃的免費服務數量從每季度3個提升至6個。了解更多

更快的服務回應時間

針對一般指導,阿里雲售後回應時間從36小時縮短至18小時。了解更多