消息隊列是阿里巴巴集團自主研發的專業消息中間件。 產品基於高可用分佈式集羣技術,提供消息訂閱和發佈、消息軌跡查詢、定時(延時)消息、資源統計、監控報警等一系列消息雲服務,是企業級互聯網架構的核心產品。 MQ 目前提供 TCP 、MQTT 兩種協議層面的接入方式,支持 Java、C++ 以及 .NET 不一樣語言,方便不一樣編程語言開發的應用快速接入 MQ 消息雲服務。 用戶能夠將應用部署在阿里雲 ECS、企業自建雲,或者嵌入到移動端、物聯網設備中與 MQ 創建鏈接進行消息收發,同時本地開發者也能夠經過公網接入 MQ 服務進行消息收發。
編程
從官方文檔中看到MQ消息隊列的產品爲一個提供消息服務的中間件,能夠提供端到雲的消息服務,這個端的覆蓋面包括了移動端和IOT物聯網設備,而且爲了支持IOT的須要除TCP協議外提供了MQTT來支持物聯網設備的消息服務,在雲上的支持不止包括阿里雲,能夠支持用戶將服務部署在企業自建雲上。做爲PAAS層的服務支持用戶經過API的方式將消息隊列服務集成在本身的平臺上,目前在產品的結構上分紅兩部分,移動端和物聯網的消息隊列服務單獨做爲一個子產品MQ FOR IOT提供服務,這項服務和MQ主服務比主要的區別就是增長了對MQTT通信協議的支持。
架構
從編程語言來看,由於MQ FOR IOT是面向移動端和物聯網,因此須要支持的編程語言更多,包括ANDROID、IOS和PYTHON環境在消息隊列服務中都已經支持。編程語言
開通服務進入控制檯後看到菜單將消息隊列服務清晰的分紅兩部分,支持MQTT的微消息服務單獨列出子菜單,菜單選項按照功能分紅三大部分,生產管理類子菜單,消息查詢追蹤類子菜單和監控報警類子菜單。
分佈式
TOPIC是消息隊列服務中一個重要概念,用於區分消息的不一樣類型,好比在一次交易中,用戶對於商品所下的訂單和支付的訂單雖然針對的是同一件事情,可是對於消息隊列來講,這兩種消息的功能和類型有明顯的不一樣,能夠用不一樣的TOPIC來區分,在TOPIC下還有個標籤TAG用於二級分類,如一個用戶對不一樣商品的購買訂單能夠做爲不一樣的TAG。針對消息的配置來說,須要定義消息的名字和消息的類型。在類型上普通消息、事務消息、定時消息、分區消息等均可以將不一樣類型的TOPIC根據類型區分。將TOPIC按什麼類型進行分類及納入哪一個分類須要用戶根據實際狀況進行肯定。
測試
除了TOPIC外,對於一條消息,還有三個獨特的屬性能夠爲查詢提供方便,生產者的編號(PRODUCT ID)、消費者的編號(CONSUMER ID)和消息編號(MESSAGE ID),加上TOPIC的配置,能夠準肯定義海量消息中的每一條,方便查詢和監控等功能的支持。
阿里雲
消息路由是指的在不一樣地域間的消息同步,須要配置源地域和TOPIC、目標地域和TOPIC,從最新寫入源的消息開始進行同步。
spa
資源報表分紅兩個子項,生產者和消費者,能夠對於消息的兩個源頭的狀況進行查看,若是須要對於消息服務的能夠在監控報警設置中進行配置,對於消息的報警項,有兩個重要指標堆積量和消息延遲,分別從數量和時間對於消息服務的異常狀況進行報警,經過短信方式通知用戶。中間件
從微消息隊列的按量付費的計費項目就能夠看出物聯網在消息通信上的幾個主要特徵,即時鏈接數、訂閱消息數和消息收發量。萬物互聯後物聯網設備的消息數在這三個維度都會到達海量的程度,特別是即時鏈接這個特色和通常的MQ服務有很大不一樣,能夠表明物聯網中消息傳遞的特徵。
blog
此外,微消息隊列服務對於消息的分類同通常MQ服務不一樣的是,將TOPIC分紅父TOPIC和子TOPIC的方式而不是TOPIC和TAG的分類方式,子TOPIC從屬於父TOPIC,這個特色我想也是由於須要支持物聯網的關係,由於傳統下的消息都是針對應用比較多,可是物聯網狀況下,消息的類型如設備的狀態、工業監測數據等會比通常狀況多的多,而且消息服務的實時性要求更高,因此將TOPIC設置成父子從屬關係更有利於對海量不一樣類型的消息進行區分。
隊列
本文爲雲棲社區原創內容,未經容許不得轉載。