資料內(nèi)容:
1. RocketMq是什么
一個(gè)純Java、分布式隊(duì)列模型的消息中間件,具有高可用、高可靠、高實(shí)時(shí)、低延遲的特點(diǎn)。(記住這句就
行了)
2. RocketMq有什么功能
1、業(yè)務(wù)解耦:這也是發(fā)布訂閱的消息模型。生產(chǎn)者發(fā)送指令到MQ中,然后下游訂閱這類指令的 消費(fèi)者會(huì)收
到這個(gè)指令執(zhí)行相應(yīng)的邏輯,整個(gè)過(guò)程與具體業(yè)務(wù)無(wú)關(guān),抽象成了一個(gè)發(fā)送指令,存儲(chǔ)指令,消費(fèi)指令的過(guò)
程。
2、前端削峰:前端發(fā)起的請(qǐng)求在短時(shí)間內(nèi)太多后端無(wú)法處理,可以堆積在MQ中,后端按照一定的順序處
理,秒殺系統(tǒng)就是這么實(shí)現(xiàn)的。
3、億級(jí)消息的堆積能力,單個(gè)隊(duì)列中的百萬(wàn)級(jí)消息的累積容量。
4、高可用性:Broker服務(wù)器支持多Master多Slave的同步雙寫以及Master多Slave的異步復(fù)制模式,其中同
步雙寫可保證消息不丟失。
5、高可靠性:生產(chǎn)者將消息發(fā)送到Broker端有三種方式,同步、異步和單向,其中同步和異步都可以保證
消息成功的成功發(fā)送。Broker在對(duì)于消息刷盤有兩種策略:同步刷盤和異步刷盤,其中同步刷盤可以保證消
息成功的存儲(chǔ)到磁盤中。消費(fèi)者的消費(fèi)模式也有集群消費(fèi)和廣播消費(fèi)兩種,默認(rèn)集群消費(fèi),如果集群模式中
消費(fèi)者掛了,一個(gè)組里的其他消費(fèi)者會(huì)接替其消費(fèi)。綜上所述,是高可靠的。
6、支持分布式事務(wù)消息:這里是采用半消息確認(rèn)和消息回查機(jī)制來(lái)保證分布式事務(wù)消息的,下面會(huì)詳細(xì)描
述。
7、支持消息過(guò)濾:建議采用消費(fèi)者業(yè)務(wù)端的tag過(guò)濾。
8、支持順序消息:消息在Broker中是采用隊(duì)列的FIFO模式存儲(chǔ)的,也就是發(fā)送是順序的,只要保證消費(fèi)的
順序性即可。
9、支持定時(shí)消息和延遲消息:Broker中由定時(shí)消息的機(jī)制,消息發(fā)送到Broker中,不會(huì)立即被Consumer
消費(fèi),會(huì)等到一定的時(shí)間才被消費(fèi)。延遲消息也是一樣,延遲一定時(shí)間之后才會(huì)被Consumer消費(fèi)。
3. RocketMq的架構(gòu)
RocketMq一共有四個(gè)部分組成:NameServer,Broker,Producer生產(chǎn)者,Consumer消費(fèi)者,每一部分
都是集群部署的。