成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

降低異構系統之間耦合度:消息隊列服務(MQS)技術淺析

云計算
消息隊列服務(Message Queue Service,簡稱MQS),是阿里云推出的分布式消息中間件服務。MQS旨在提供可靠、海量、高并發的分布式消息隊列服務,從而幫助應用開發者實現應用之間以及應用內部各組件之間的消息傳遞,解耦系統之間的依賴。

1 MQS簡介

消息隊列服務(Message Queue Service,簡稱MQS),是阿里云推出的分布式消息中間件服務。

MQS旨在提供可靠、海量、高并發的分布式消息隊列服務,從而幫助應用開發者實現應用之間以及應用內部各組件之間的消息傳遞,解耦系統之間的依賴。

2 MQS功能特點

消息隊列最早出現在操作系統中,解決了傳統的進程通信模式中存在的很多弊端。消息隊列具備的優點包括:

(1) 單獨對消息的收、發進行管理,確保消息的成功傳遞。

(2) 提供異步的通信協議,消息產生者只需要將消息發送到消息隊列中,即可立刻返回。

(3) 大大降低異構系統之間的耦合度。

在大數據時代,傳統的消息隊列無法滿足日益增長的消息通信需求,用戶個人搭建消息隊列集群會帶來較大的機器和運維成本;同時隨著移動端規模的爆發式增長,對消息隊列的安全性、可靠性以及可擴展性提出了挑戰。阿里云推出的消息隊列服務(MQS)是基于阿里云飛天云平臺上的消息中間件服務,相比傳統的消息隊列而言,具備如下特點:

  • 零運維、高性能、高可擴展。
  • 數據多冗余架構,確保消息的可靠性。
  • 在有效期內,保證每條消息至少可被消費一次(at-least-once)。
  • 允許創建海量的消息隊列。
  • API接口簡單易用,對平臺無依賴。
  •  不嚴格保證消息的FIFO屬性。

3 MQS基本架構

MQS的基本架構如圖1所示。可以分為四部分:

  • l OAuth、Authorization驗權驗證模塊。接入阿里云的賬號驗證體系,用戶需首先在阿里云官網(www.aliyun.com)申請賬號并開通服務之后方可使用MQS服務。
  • l Http Front模塊。主要負責對用戶的HTTP請求進行解析、處理,并接入阿里云的驗證驗權模塊,最終在MQS的后端服務集群執行完請求后將結果返回給用戶。
  • l MQS Master模塊。主要負責Message數據的切片調度,實現分布式的load balance。
  • l Message Data Server集群。基于阿里云飛天分布式計算平臺的MQS后端服務集群,是MQS的核心模塊,實現了關于隊列、消息的所有操作。

 

圖1 MQS架構圖

3.1 數據多冗余

如圖1所示,寫入到MQS的所有消息數據都會對應三份拷貝,從而確保數據的高可靠性。

3.2 Qos控制

在Message Data Server層針對每個隊列都設置有單獨的QoS控制,針對該隊列的訪問請求量不得超過其QoS上限值。

3.3 數據多切片分布

隊列的消息數據是按照特定的算法進行切片分布的,并由MQS Master進行集中管理,這不僅有效的實現了load balance,同時還能夠動態的進行集群規模的彈性擴展。

4 MQS隊列中消息存活周期

在具體介紹隊列中消息存活周期之前,首先介紹下MQS涉及到的相關術語。

  • Active Message(活躍消息)
  • 隊列中可以被取出消費的消息。
  • Inactive Message(非活躍消息)
  • 隊列中已經被取出但未刪除的消息,非活躍消息將保持一段時間(隊列的VisibilityTimeout屬性值)無法被其他人取出。
  • Expired Message (過期消息)

當隊列中的某條消息超過了消息有效時間(TTL)之后仍未被取出,則該消息將變為過期消息,會被后臺GC模塊回收。

在介紹完一些基本術語之后,圖2中顯示了一條消息的整個生命周期。

在PutMessage之后,消息進入到隊列中,即成為能夠被取出的ActiveMessage;(如圖2中A所示)

在消費者取出該條消息之后則轉變為InactiveMessage;(如圖2中B所示)

a) 如果在VisibilityTimeout時間段內,消費者將該條消息消費完畢,并發送刪除請求,則該消息將會從隊列中刪除;(如圖2中C所示)

b) 如果消費者未完成消費,則InactiveMessage將會在VisibilityTimeout之后自動轉換成ActiveMessage,從而可以再次被取出消費;(如圖2中D所示)

在消息有效時間過后,消息將變為ExpiredMessage,從隊列中刪除。(如圖2中E.1和E.2所示)

圖2 隊列中消息的生命周期

5 MQS中多樣的隊列模式

在滿足普通的消息收發模式的同時,MQS還向用戶提供了多樣的隊列模式,分別包括延遲隊列、長輪詢隊列以及優先級隊列等。

5.1 延遲隊列

在延遲隊列中,發送到隊列中的每一條消息都會保持一段等待時間,在等待時間過后才可以被取出消費。延遲隊列可以幫用戶輕松實現任務定時分發等功能。目前延遲隊列支持最大的延遲時間長達7天。

5.2 長輪詢隊列

由于MQS實現的是基于HTTP協議的API接口,用戶是通過拉(pull)的方式進行消息的獲取,從而可能會出現消息數據獲取不及時或者頻繁發送空取消息的無用請求。MQS通過長輪詢(long polling)的方式確保了用戶能夠在減少無用請求的基礎上,又能及時獲取到消息。

5.3 優先級隊列

優先級隊列能夠為用戶提供具備消息優先級別的隊列。發送到隊列中的每條消息都會設置有相應的優先級別;在進行消費時,較高優先級別的消息將會先被取出。目前優先級隊列暫時無法確保百分百的優先級順序。

6 技術展望

作為消息通訊的中間件服務,MQS會將服務的穩定性和安全性放在首位,主要工作將包括:

開放賬戶訪問權限授予的API接口;

增加隊列狀態監控報警機制;

同時,在功能和性能方面將進行更多的嘗試:

長連接功能打開;

后端server采用更高效的異步處理模式;

死信隊列,消息數據備份等。

原文鏈接:http://blog.aliyun.com/1346?spm=0.0.0.0.R1KCex

責任編輯:Ophira 來源: 阿里云
相關推薦

2024-04-10 11:56:33

2024-04-01 09:59:08

消息隊列通信微服務

2023-11-07 10:01:34

2015-08-11 11:16:36

淘寶中間件

2013-04-26 17:38:52

大數據全球技術峰會

2023-02-06 08:54:59

Go設計模式項目

2023-10-06 12:08:53

Java代碼

2024-05-10 07:19:46

IOC依賴倒置控制反轉

2025-02-26 08:46:31

2024-05-11 07:48:46

騰訊抽象耦合度

2009-08-05 14:27:55

ASP.NET模板基本

2021-08-02 17:21:08

設計模式訂閱

2011-01-12 11:12:38

普元平臺軟件

2023-06-28 08:16:50

Autofac應用程序

2024-04-10 08:59:39

SpringAOP業務

2024-07-02 11:05:03

依賴倒置系統

2009-03-17 16:18:51

JspActionStruts

2020-06-09 08:19:25

微服務網站架構

2023-06-18 19:21:04

技術架構服務網格

2022-01-26 00:36:24

vue組件化通信
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美激情在线一区二区三区 | 国产免费av在线 | 久久成人激情 | 天天插天天干 | 美女张开腿露出尿口 | 欧美 中文字幕 | 国产一区欧美 | 午夜久久久久久久久久一区二区 | 51ⅴ精品国产91久久久久久 | 免费一区二区 | 久久99精品久久久久子伦 | 亚洲精品一区二区在线观看 | 亚洲一区 中文字幕 | 国产欧美日韩在线一区 | 中文在线一区二区 | 自拍偷拍亚洲视频 | 一区二区在线免费观看视频 | 国产精品久久久久久久久久久久 | 99在线播放 | 男人天堂网址 | 欧美精品一区二区三区在线 | 国产精品国产精品国产专区不片 | 99久久99久久精品国产片果冰 | 在线看91 | 正在播放国产精品 | www在线视频 | 国产一区二区三区精品久久久 | 欧美激情精品久久久久久免费 | 精品99在线 | 成人做爰www免费看 午夜精品久久久久久久久久久久 | av天天看 | 97超碰在线播放 | 激情国产 | 精品久久久久久亚洲精品 | 国产精品视频久久久 | 日韩欧美亚洲 | 国产精品国产a | 亚洲一区二区在线电影 | 色999视频| 一区二区三区四区在线视频 | 91高清视频在线 |