天天看點

消息隊列(MQ)重磅推出MQTT移動物聯套件

消息隊列(mq)可應用在多個領域,包括異步通信解耦、企業解決方案、金融支付、電信、電子商務、快遞物流、廣告營銷、社交、即時通信、移動應用、手遊、視訊、物聯網、車聯網等。近期,消息隊列(mq)推出順序消息消息、mqtt移動物聯套件、kafka企業級消息服務。下述内容将解析消息隊列(mq)順序消息、車聯網、kafka企業級消息服務的應用場景。

普通消息:最大4m,消息越小,性能越高

事務消息:兩階段送出、解決分布式事務問題

定時消息:消息的延時或者定時投遞;最長40天

順序消息:全局順序、分區順序;嚴格保證消息的順序

基于釋出訂閱模型,分布式應用異步解耦,可以增加應用的水準擴充性,增加前端應用快速客戶反應能力。

大促等流量洪流突然來襲時,mq可以緩沖突發流量,避免整個系統崩潰。

做為重要日志的監控通信管道,将應用日志監控對系統性能影響降到最低。

消息隊列秉持開放、共享的原則擁抱開源生态,無技術綁定,2016年阿裡巴巴正式宣布将 mq 核心引擎 rocketmq 捐贈給 apache 軟體基金會;與此同時,全面融合 kafka 生态,做到無縫遷移,打造更安全、更可靠、更易運維的 kafka 企業級消息服務。

此次我們總結了幾款業界主流消息中間件産品的對比報告:

項目

消息隊列(mq) & kafka 企業級消息服務

apache rocketmq(開源)

apache kafka(開源)

rabbitmq(開源)

安全防護

×

主子賬号支援

low latency

定時消息

√(支援秒級,最長可支援40天)

√(隻支援18個固定level)

事務消息

√(支援ha)

√(不支援ha)

全鍊路消息軌迹

消息堆積查詢

消息回溯

可靠性

非常好,99.99999999%

一般

可用性

非常好,99.99%,always writable

性能(正常 < 128位元組 )

非常好 ~= 50w/sec

非常好 ~= 50w/sec

非常好 ~= 23w/sec

一般 ~= 6w/sec

性能(萬級topic場景)

非常好

性能(海量消息堆積場景)

最大隊列數(理論值)

~= 10w

~= 1k

服務支援

阿裡雲平台統一運維

使用者運維成本高

消息隊列(mq)提供 mq-mqtt 移動物聯套件,連接配接端(如移動裝置、智能家電、汽車、機器人等)和雲,實作雙向通信,可支撐億級裝置連接配接與百萬消息并發;

消息隊列(MQ)重磅推出MQTT移動物聯套件

一般來說車聯網系統是一個端到雲的多層體系,其資料流主要分為2類:

資料上行采集:安裝在車輛等執行部件上的傳感器采集狀态資料後,定期上傳到服務端進行分析和應用。其特點是,車輛和傳感器種類衆多,基數大,移動資料網絡大多走4g,不如固定網絡穩定。

指令下行推送:遠端服務端根據設定,下行推送控制指令資料,控制指定的用戶端進行某些行為。

為什麼選擇消息隊列 mqtt 移動物聯套件

接入簡單:提供了标準的 mqtt 物聯網協定,支援多語言跨平台,接入更簡單。

多協定支援:支援自定義協定,包括車聯網領域衆多終端協定,例如國标808,新能源國标協定等等。

安全靈活:支援裝置級身份校驗和ssl加密,資料傳輸更安全。同時可支援第三方認證體系,更靈活。

服務穩定:消息隊列服務于整個阿裡巴巴集團已超過8年,經過阿裡巴巴交易核心鍊路反複打磨與曆年雙十一嚴苛考驗,是個低延遲、高并發、高可用、高可靠,可支撐萬億級資料洪峰的分布式消息中間件。

生态豐富:消息隊列擁抱開源,無技術綁定,無縫對接 kafka 生态以及各種流計算引擎與監控系統,實作大資料分析與營運。

下面,将介紹消息隊列(mq)新推出的順序消息的應用場景:

消息隊列(MQ)重磅推出MQTT移動物聯套件

在金融行業中,外彙/證券交易有一個順序性原則:1. 價格優先 2.時間優先,價格不同則價格優先,價格相同則時間優先;很明顯,在這種情況下,買賣交易雙方都是有嚴格順序性的。消息隊列的順序消息可以很好的處理此類場景。

比如外彙交易中,可以指定不同的topic對應不同的外彙兌換币種交易,同一類外彙兌換币種交易時采用全局順序消息。

消息隊列(MQ)重磅推出MQTT移動物聯套件

在電商領域裡面,每天都會有大量的交易發生,萬萬億條資料已無法通過單一執行個體資料庫進行處理,是以都會對資料庫進行拆分,根據特定的key進行分庫分表。為了提高資料更新與查詢的效率,盡可能的避免全庫全表掃描,買家庫會根據買家id進行拆分,賣家庫則需要根據賣家id進行拆分。那麼,由此就會産生多種不同次元的資料異構複制的場景。

異構資料複制的過程中,目标資料庫的資料必須嚴格按照源資料庫中資料的增、删、改順序才能保證資料的正确性。消息隊列的分區順序就可以很好的解決此類場景。

全局順序為了嚴格保證順序,消息的釋出與訂閱都必須是單并發,這會導緻性能受到單并發的影響。而分區順序則則可以根據分區的數量進行并發處理,進而提高整體的性能。由于在訂單交易過程中,不同賣家的交易訂單是不會有順序關聯的,隻有在相同賣家、相同訂單的情況下才必須保證順序。是以,我們可以根據 seller_id 進行分區。

消息隊列(MQ)重磅推出MQTT移動物聯套件

消息隊列提供的 kafka 企業級消息服務包括以下特點:

業務系統基于現有的 kafka 代碼與生态進行開發,無需任何改造,即可無縫遷移到阿裡雲消息隊列(mq)提供的 kafka 消息服務。

消息隊列(mq)提供的 kafka 消息服務利用 sasl 機制對使用者身份進行認證,并利用 ssl 對通道進行加密,提供更加安全的消息服務;

消息持久化落盤到消息隊列,支援數多副本以及主備自動切換,可靠性達99.99999999%,服務可用性高達99.9%。

支援在萬級topic,以及海量的消息堆積的情況下,也始終保持超高的性能。

提供一整套包括資源申請、資源授權、消息堆積查詢、消息全鍊路軌迹、監控告警等運維服務,提升使用者的産品體驗。

使用者可以通過 kafka client 發送消息,mq client 訂閱消息,反之亦然,真正做到消息隊列(mq)與 kafka 消息完全互通。

<a href="https://www.aliyun.com/aliware">前往領取消息隊列(mq)新手禮券(開通後不可領取)</a>

<a href="https://www.aliyun.com/product/ons">檢視消息隊列(mq)産品詳情</a>

<a href="https://page.aliyun.com/form/aliware_mq_product_application/pc/index.htm">申請mq産品專家一對一咨詢</a>