什么是消息队列 RocketMQ 版?
?
消息隊列 RocketMQ 版是阿里云基于 Apache RocketMQ 構(gòu)建的低延遲、高并發(fā)、高可用、高可靠的分布式消息中間件。消息隊列 RocketMQ 版既可為分布式應(yīng)用系統(tǒng)提供異步解耦和削峰填谷的能力,同時也具備互聯(lián)網(wǎng)應(yīng)用所需的海量消息堆積、高吞吐、可靠重試等特性。
訪問方式
除公網(wǎng)訪問方式外,消息隊列 RocketMQ 版還支持專有網(wǎng)絡(luò) VPC。您可以完全掌控自己的專有網(wǎng)絡(luò),例如選擇 IP 地址范圍、配置路由表和網(wǎng)關(guān)等,您可以在自己定義的專有網(wǎng)絡(luò)中使用阿里云資源如云服務(wù)器、云數(shù)據(jù)庫 RDS 版和負(fù)載均衡等。
核心概念
- Topic:消息主題,一級消息類型,生產(chǎn)者向其發(fā)送消息。
- 生產(chǎn)者:也稱為消息發(fā)布者,負(fù)責(zé)生產(chǎn)并發(fā)送消息至 Topic。
- 消費者:也稱為消息訂閱者,負(fù)責(zé)從 Topic 接收并消費消息。
- 消息:生產(chǎn)者向 Topic 發(fā)送并最終傳送給消費者的數(shù)據(jù)和(可選)屬性的組合。
- 消息屬性:生產(chǎn)者可以為消息定義的屬性,包含 Message Key 和 Tag。
- Group:一類生產(chǎn)者或消費者,這類生產(chǎn)者或消費者通常生產(chǎn)或消費同一類消息,且消息發(fā)布或訂閱的邏輯一致。
消息隊列 RocketMQ 版涉及的概念的詳細(xì)解釋,請參見名詞解釋。
消息收發(fā)模型
消息隊列 RocketMQ 版支持發(fā)布/訂閱模型,消息生產(chǎn)者應(yīng)用創(chuàng)建 Topic 并將消息發(fā)送到 Topic。消費者應(yīng)用創(chuàng)建對 Topic 的訂閱以便從其接收消息。通信可以是一對多(扇出)、多對一(扇入)和多對多。
具體通信如下圖所示。
圖 1.?消息收發(fā)模型
- 生產(chǎn)者集群:用來表示發(fā)送消息應(yīng)用,一個生產(chǎn)者集群下包含多個生產(chǎn)者實例,可以是多臺機(jī)器,也可以是一臺機(jī)器的多個進(jìn)程,或者一個進(jìn)程的多個生產(chǎn)者對象。
一個生產(chǎn)者集群可以發(fā)送多個 Topic 消息。發(fā)送分布式事務(wù)消息時,如果生產(chǎn)者中途意外宕機(jī),Broker 會主動回調(diào)生產(chǎn)者集群的任意一臺機(jī)器來確認(rèn)事務(wù)狀態(tài)。
- 消費者集群:用來表示消費消息應(yīng)用,一個消費者集群下包含多個消費者實例,可以是多臺機(jī)器,也可以是多個進(jìn)程,或者是一個進(jìn)程的多個消費者對象。
一個消費者集群下的多個消費者以均攤方式消費消息。如果設(shè)置的是廣播方式,那么這個消費者集群下的每個實例都消費全量數(shù)據(jù)。
一個消費者集群對應(yīng)一個 Group ID,一個 Group ID 可以訂閱多個 Topic,如圖 1?中的 Group 2 所示。Group 和 Topic 的訂閱關(guān)系可以通過直接在程序中設(shè)置即可,具體設(shè)置方法可參見產(chǎn)品更新日志中的資源申請流程優(yōu)化部分。
應(yīng)用場景
- 削峰填谷
諸如秒殺、搶紅包、企業(yè)開門紅等大型活動時皆會帶來較高的流量脈沖,或因沒做相應(yīng)的保護(hù)而導(dǎo)致系統(tǒng)超負(fù)荷甚至崩潰,或因限制太過導(dǎo)致請求大量失敗而影響用戶體驗,消息隊列 RocketMQ 版可提供削峰填谷的服務(wù)來解決該問題。
- 異步解耦
交易系統(tǒng)作為淘寶/天貓主站最核心的系統(tǒng),每筆交易訂單數(shù)據(jù)的產(chǎn)生會引起幾百個下游業(yè)務(wù)系統(tǒng)的關(guān)注,包括物流、購物車、積分、流計算分析等等,整體業(yè)務(wù)系統(tǒng)龐大而且復(fù)雜,消息隊列 RocketMQ 版可實現(xiàn)異步通信和應(yīng)用解耦,確保主站業(yè)務(wù)的連續(xù)性。
- 順序收發(fā)
細(xì)數(shù)日常中需要保證順序的應(yīng)用場景非常多,例如證券交易過程時間優(yōu)先原則,交易系統(tǒng)中的訂單創(chuàng)建、支付、退款等流程,航班中的旅客登機(jī)消息處理等等。與先進(jìn)先出(First In First Out,縮寫 FIFO)原理類似,消息隊列 RocketMQ 版提供的順序消息即保證消息 FIFO。
- 分布式事務(wù)一致性
交易系統(tǒng)、支付紅包等場景需要確保數(shù)據(jù)的最終一致性,大量引入消息隊列 RocketMQ 版的分布式事務(wù),既可以實現(xiàn)系統(tǒng)之間的解耦,又可以保證最終的數(shù)據(jù)一致性。
- 大數(shù)據(jù)分析
數(shù)據(jù)在“流動”中產(chǎn)生價值,傳統(tǒng)數(shù)據(jù)分析大多是基于批量計算模型,而無法做到實時的數(shù)據(jù)分析,利用阿里云消息隊列 RocketMQ 版與流式計算引擎相結(jié)合,可以很方便的實現(xiàn)將業(yè)務(wù)數(shù)據(jù)進(jìn)行實時分析。
- 分布式緩存同步
天貓雙 11 大促,各個分會場琳瑯滿目的商品需要實時感知價格變化,大量并發(fā)訪問數(shù)據(jù)庫導(dǎo)致會場頁面響應(yīng)時間長,集中式緩存因為帶寬瓶頸限制商品變更的訪問流量,通過消息隊列 RocketMQ 版構(gòu)建分布式緩存,實時通知商品數(shù)據(jù)的變化。
更多信息請參見適用場景。
?上一篇: 產(chǎn)品更新日志
總結(jié)
以上是生活随笔為你收集整理的什么是消息队列 RocketMQ 版?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot高级——消息队列相关
- 下一篇: RocketMQ控制台安装教程