閱讀356 返回首頁    go 群英


產品概述__產品簡介_消息服務-阿裏雲

阿裏雲消息服務(Message Service)是一種高效、可靠、安全、便捷、可彈性擴展的分布式消息服務。MNS能夠幫助應用開發者在他們應用的分布式組件上自由的傳遞數據、通知消息,構建鬆耦合係統。

消息服務提供了兩種模型:

  • 隊列模型
  • 主題模型

兩種功能模型的區別:

  1. 隊列模型支持一對一發送和接收消息;
  2. 主題模型支持一對多發布和訂閱消息,並且支持多種消息推送方式;

隊列模型簡介

隊列模型旨在提供高可靠高並發的一對一消費模型。即隊列中的每一條消息都隻能夠被某一個消費者進行消費。

類比舉例說明:

隊列模型就如同一家旋轉壽司店,壽司店中有多個壽司師傅(生產者)在製作精美的壽司(消息),每一份壽司都是獨特的,每位顧客(消費者)同時從傳送帶上拿取中意的壽司進行食用(消費)。

隊列模型示意圖:

隊列模型示意圖

隊列模型特性:

A. 豐富的隊列屬性配置

我們提供了豐富的隊列屬性配置選項,您可以進行隊列屬性的個性化配置來滿足不同的應用場景,支持:普通隊列、延遲隊列、優先級隊列等多種隊列模式。

B. 支持海量並發訪問

支持多個生產者和消費者並發訪問同一個隊列,並能確保某條消息在取出之後的特定時間段內,無法被其他消費者獲得。可以根據業務需求自由伸縮並發訪問數。

C. 消息投遞保障

在消息有效期內,確保消息至少能被成功消費一次。接入阿裏雲賬號體係,用戶間資源隔離,確保您隊列中的消息不會被非法獲取。

D. 分布式事務消息

完善的分布式環境下事務消息解決方案。

E. 支持日誌管理

可以通過日誌管理的方式,查看每一條消息發送、接收和刪除的完整生命周期。用戶可以通過日誌管理,方便的進行問題調查。

詳見:日誌管理

F. 支持雲監控

用戶可以通過雲監控查看隊列情況,並且可以自定義報警項,當隊列情況不符合期望時,能夠及時知曉。

詳見:雲監控雲監控控製台

主題模型簡介

主題訂閱模型旨在提供一對多的發布訂閱以及消息通知功能,支持用戶實現一站式多種消息通知方式:

  • 推送到用戶指定 HttpServer
  • 推送到用戶指定的 Queue(用戶可以從該 Queue 拉取消息)
  • 推送到郵件(組)
  • 推送到短信(列表)
  • WebSocket方式推送(即將支持)
  • 移動推送(計劃支持)

類比舉例說明:

主題就好比一份報紙,多個客戶都到郵局訂閱了這份報紙,當報紙推出最新一期時,客戶(包括郵局的合作夥伴)可以選擇如下方式來獲取報紙:

  • 讓郵局投遞員將報紙都投遞(推送)到特定的地址(家裏)
  • 去就近的訂閱點(報刊亭)自行獲取報紙,(報紙會先被郵局投遞員集中送到各個報刊亭)
  • 讓郵局直接把報紙電子版發送到自己指定的郵箱
  • 讓郵局把報紙簡訊通過短信的方式發送到自己的手機
  • 可以讓郵局通過WebSock的方式將報紙電子版直接推送到連接的多個終端上
  • 可以讓報社通過指定移動推送接入點的方式將報紙電子版直接推送到手機APP上

主題模型示意圖:

主題訂閱模型示意圖

說明:

  • 圖中所示,Topic上有多個訂閱,分別使用了不同的推送方式,有推送到 HttpServer 的,有推送到 Queue 的,有推送到郵箱中的等等。
  • 圖中所示,一條消息發布到 Topic 中後,會被分別推送到不同的訂閱指定的 Endpoint 中。
  • 圖中所示,訂閱支持消息過濾,可以在訂閱中指定“過濾標簽”。對於沒有指定“過濾標簽”的訂閱,發送消息時,無論有沒有指定“消息標簽”,消息都可以推送到指定的接收端;對於指定了“過濾標簽”的訂閱(Subscription2),發送的消息,隻有指定了匹配的“消息標簽”(紅色的消息B),消息才會推送到指定的接收端。

主題模型特性:

  • 支持通知消息
  • 支持一對多廣播消息
  • 支持消息標簽過濾
  • 支持多種投遞方式
  • 消息投遞保障
  • 支持雲產品事件通知
  • 支持日誌管理
  • 支持雲監控

A. 支持通知消息

1)MNS服務端主動將消息推送給用戶指定的回調地址(消息通知地址),消除用戶端程序不必要的輪詢和資源消耗。用戶可以將資源集中在處理自身業務的邏輯中。並且也可以避免對其他消息服務產品客戶端的依賴,避免因為過多代碼引入從而影響自身服務的穩定性。

詳見:HttpEndpoint 處理HttpEndpoint 簽名HttpEndpoint JavaHttpEndpoint 本地 Debug 工具

2)同時,對於由於網絡或者其他原因造成用戶不方便提供回調地址的,MNS也支持將消息推送到 Queue 中,用戶仍然可以直接到 Queue 中獲取消息。原先使用“隊列模型”的消費者,可以無縫消費主題中的消息。

詳見:Queue 推送廣播拉取消息

B. 支持一對多廣播消息

1)發布到主題中的一條消息可以同時被多個訂閱者訂閱,會被按照多個訂閱指定的推送方式和 Endpoint 地址推送過去。用戶同時可以從多個(種)渠道接收到這條消息。

2)用戶僅需發布一次,就可以將消息推送到多個接收端,保證了消息發布的原子性。

C. 支持消息標簽過濾

在支持一對多廣播消息的基礎上,在訂閱中還支持對消息進行過濾。可以訂閱 Topic 中帶有特定標簽的消息。在創建訂閱時指定消息過濾標簽,然後 PublshMessage 時指定消息標簽,MNS在推送消息時會根據標簽進行過濾,僅推送消息標簽與訂閱中指定的過濾標簽匹配的消息到指定 Endpoint 上。

詳見:主題接口規範

D. 支持多種投遞方式

MNS支持多種消息投遞方式,包括但不限於:

E. 消息投遞保障

在消息有效期內,保證發布到 Topic 中的消息會按照指定的策略和格式推送給用戶程序。推送策略包括:

  • 退避重試(BACKOFF_RETRY)

    重試 3 次,每次重試的間隔時間是 10秒 到 20秒 之間的隨機值

  • 指數衰減重試(EXPONENTIAL_DECAY_RETRY),

    重試 176 次,每次重試的間隔時間指數遞增至 512秒,總計重試時間為1天;每次重試的具體間隔為:1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 512 … 512 秒 (共167個512)

推送消息格式包括:

  • XML:消息體為XML格式,包含消息正文和消息屬性;
  • JSON:消息體為JSON格式,包含消息正文和消息屬性;
  • SIMPLIFIED (精簡格式,即文本格式):消息體即用戶發布的消息,不包含任何屬性信息;

詳見:NotifyStrategyNotifyContenFormat

F. 支持雲產品事件通知

MNS提供了事件通知的功能,用戶可以通過在MNS上創建事件通知的規則,來關注其他阿裏雲產品指定資源上產生的事件,並且由MNS以消息的方式主動推送到指定的接收端。目前已接入OSS,用戶可以通過事件通知功能監聽和處理 OSS 中 Bucket 的管理事件、Bucket 中 Object 的創建、刪除、更新等事件。

詳見:事件通知

G. 支持日誌管理

可以通過日誌管理的方式,查看每一條消息發布進主題的記錄,以及每一次推送給用戶的記錄,包括重試推送的記錄、推送結果等。能夠展示每條消息的生命周期。用戶可以通過日誌管理,方便的進行問題調查。

詳見:日誌管理

H. 支持雲監控

可以通過雲監控查看消息推送的記錄,及時查看和監控消息的推送情況,當推送失敗次數比較多時,能夠通過添加報警的方式及時知曉。

詳見:雲監控雲監控控製台


更多產品使用詳情,可參考:

最後更新:2016-11-23 17:18:23

  上一篇:go 雲計算服務價格仍未觸底 阿裏雲部分企業級服務器降價35%
  下一篇:go 隊列模型名詞解釋__產品名詞解釋_產品簡介_消息服務-阿裏雲