閱讀932 返回首頁    go 阿裏雲 go 技術社區[雲棲]


使命必達--阿裏雲商用消息服務MNS初探

87ef82eb5e5b9860ff82d24bb70b93cc16a5849c
在2015杭州雲棲大會上,阿裏雲飛天事業部資深總監李津發布了一款海量消息,使命必達的消息服務產品(https://www.aliyun.com/product/mns)。該產品能夠提供高效,可靠,安全,便捷,彈性擴展的消息服務;能夠
幫助我們輕鬆的構建鬆耦合,高並發的分布式係統;能夠方便我們做跨域數據安全傳輸。目前,消息服務也是阿裏雲唯一商用消息產品,其服務穩定性和可靠性都有SLA保障。下麵讓我一起來詳細了解一下這款產品。
 
架構優勢帶來海量,高可靠,高可用特性
在了解消息服務前,不得不提的是阿裏雲飛天係統。飛天是阿裏雲的核心平台,提供了分布式存儲和分布式計算服務。阿裏雲大部分產品都是基於核心這個平台,消息服務也不例外。下圖是消息服務基於飛天的架構圖:
07859026291f5088314e30fe0ad20486ac784a36

消息服務在研發之初就是以海量,高可靠性,高可用性為目標來設計的。這是消息服務和其他通過軟件雲化,以主從同步實現數據可靠性的消息中間件最根本的區別。
消息服務無論是數據節點還是元數據節點,都采用了完全分布式的設計,具有非常好的線性擴展能力。用戶數據被打散存儲到整個集群,突破了單物理機的存儲上限,進而實現了海量的數據存儲能力。用戶隊列個數和單隊列堆積消息數都無上限限製;
消息服務每條消息在返回給用戶寫成功之時就確保數據已被複製3份寫到不同物理機上,並且後台數據複製機製能夠保證任何一台物理機故障時其上的數據能夠快速的做遷移,時刻保證用戶數據3份copy可用,進而實現了非常高的數據可靠性(99.99999999%);
同樣的,消息服務的每個用戶隊列都同時有2個以上物理機提供服務,並且發生物理機故障時,隊列服務單元會做快速自動遷移,這就保證了任何時刻出現機器故障,都不會影響用戶對於隊列的使用,進而保證了消息服務的高可用性。
 
六大特色功能
除了上述3大基本特點外,消息服務還提供了一係列特色功能,
特色功能1:保證消息至少被消費一次。通常的消息隊列,在消息被取出後就認為用戶程序已經消費成功。在阿裏雲的消息服務裏,隻有消息在被用戶主動刪除後,才會被認定為消息被用戶程序消費成功。否則,消息服務會保證消息在用戶設定的時間後繼續可以消費,進而保證消息“使命必達”。 這個機製在分布式係統中單點故障成為常態的情況下非常有用,用戶不用擔心自己的程序崩潰而導致丟失正在處理中的消息,也無需在程序重新啟動後做任何消費狀態設置。
特色功能2:所有API包括管理API,都采用標準HTTP Restful 接口,支持公網訪問,無平台依賴。用戶可以輕鬆的做跨域的數據傳輸,而不需要在防火牆開特殊端口;也不需要等待官方某種特定語言的SDK,可以很方便的用各種語言以自己想要的方式實現SDK,做到自主可控。
特色功能3:優先級消息。在現實生活中,我們在銀行,火車票售票排隊窗口,會看到對於XXX優先等字樣,其實在程序世界也是一樣。我們會有特殊緊急的消息/任務需要優先處理。消息服務為此專門提供了優先級消息功能,能夠讓優先級高的消息“插隊”,優先被用戶程序處理。
特色功能4:延遲消息。我們也會碰到有些任務需要在一定時間後被執行的場景。例如:用戶下完訂單後,需要在15分鍾後檢查用戶訂單是否完成付款,這時我們隻需要消息服務的隊列裏發送一條延遲15分鍾的消息即可。處理程序15分鍾後從隊裏讀取消息,並檢查訂單狀態是否為支付成功,如果沒有則取消訂單,並更新商品庫存。
特色功能5: 批量消息功能。有時候,我們需要一次性往隊列裏發送或獲取多條消息,以提高處理速度。這時消息服務的批量消息功能就可以幫助我們實現這一目的。
特色功能6: 通知消息功能。該功能是消息服務即將公測的功能,已經應用於阿裏雲的對象存儲服務和媒體轉碼等雲服務。目前已經支持http回調方式,後續還會支持移動推送,郵件,短息通知。可以輕鬆幫助我們實現真正的異步通知場景。
 
多種應用場景,零運維成本
消息服務提供的上述功能,能夠幫助用戶輕鬆實現係統解耦,削峰填穀,數據交換,通知回調,定時任務,優先級任務等場景,並且不需要自己購買服務器,搭建開源消息中間件軟件以及後續繁瑣的運維擴容工作。消息服務提供了一鍵開通,按需使用,彈性擴容,按量計費的全方位貼心服務。讓企業可以專注於自己的係統組件間的業務邏輯,而不需要為底層消息中間件穩定性擔憂,真正實現了0運維成本。
 
消息產品雲服務化趨勢,阿裏雲消息服務使命必達
在雲計算越來越普及,SOA架構大行其道的今天,消息中間件已經成為了必不可少的組件,我們預測傳統的自己搭建服務器做為消息中間件的方式也會慢慢退出曆史舞台。國外雲計算起步較早的國家這個趨勢越加明顯,湧現出了不少商用消息中間件雲服務。國內阿裏雲憑借著自己堅實的核心技術實力和服務電商大數據的經驗已經取得了國內雲計算的領先地位。消息服務也正是經過了阿裏雲產品內部近4年的錘煉而成的商用產品,因此在成熟度和穩定性要遠超其他國內同類產品,並承諾使命必達,不丟消息。

最後更新:2017-04-01 13:37:06

  上一篇:go Android應用性能優化實踐
  下一篇:go 小米係統性能的優化