教培參考
教育培訓(xùn)行業(yè)知識(shí)型媒體
發(fā)布時(shí)間: 2024年12月29日 19:01
消息隊(duì)列的用途:
主要解決應(yīng)用解耦、異步消息、流量削鋒等問題,實(shí)現(xiàn)高性能、高可用、可伸縮和最終一致性架構(gòu)。
消息隊(duì)列的常見類型
1、Kafka:由Apache軟件基金會(huì)開發(fā)的一個(gè)開源流處理平臺(tái),由Scala和Java編寫,是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),支持單機(jī)每秒百萬并發(fā)。
2、RocketMQ:阿里開源的消息中間件,是一款低延遲、高可靠、可伸縮、易于使用的消息中間件。
3、RabbitMQ:由Erlang(有著和原生Socket一樣低的延遲)語言開發(fā)基于AMQP協(xié)議的開源消息隊(duì)列系統(tǒng),能保證消息的可靠性、穩(wěn)定性、安全性。
消息隊(duì)列應(yīng)用場(chǎng)景
1、應(yīng)用解耦。消息隊(duì)列可以使消費(fèi)者和生產(chǎn)者直接互不干涉、互不影響,只需要把消息發(fā)送到隊(duì)列即可,而且可獨(dú)立的擴(kuò)展或修改兩邊的處理過程。常見場(chǎng)景:用戶下單后,訂單系統(tǒng)需要通知庫(kù)存系統(tǒng)。
2、流量削鋒。當(dāng)客戶端訪問量突然劇增,對(duì)服務(wù)器的訪問已經(jīng)超過服務(wù)所能處理的最大峰值,甚至導(dǎo)致服務(wù)器超時(shí)負(fù)載崩潰,使用消息隊(duì)列可以解決這個(gè)問題,可以通過控制消費(fèi)者的處理速度和生產(chǎn)者可進(jìn)入消息隊(duì)列的數(shù)量等來避免峰值問題。常見場(chǎng)景:秒殺活動(dòng),一般會(huì)因?yàn)榱髁窟^大導(dǎo)致流量暴增,應(yīng)用掛掉。
3、異步通信。消息隊(duì)列提供了異步處理機(jī)制,可以把消息放在隊(duì)列中并不立即處理,需要的時(shí)候處理,或者異步慢慢處理,一些不重要的發(fā)送短信和郵箱功能可以使用。常見場(chǎng)景:用戶注冊(cè)后需要發(fā)注冊(cè)郵件和注冊(cè)短信。
4、排序保證。消息隊(duì)列可以控制數(shù)據(jù)處理的順序,因?yàn)橄㈥?duì)列本身使用的是隊(duì)列這個(gè)數(shù)據(jù)結(jié)構(gòu),F(xiàn)IFO(先進(jìn)選出),在一些場(chǎng)景數(shù)據(jù)處理的順序很重要,比如商品下單順序等。
Java是當(dāng)前互聯(lián)網(wǎng)行業(yè)應(yīng)用最廣泛的編程語言,人才需求大、薪資福利好,如果你想快速入行Java,可以選擇專業(yè)的學(xué)習(xí),現(xiàn)在正是好時(shí)機(jī)。
微信掃碼關(guān)注公眾號(hào)
獲取更多考試熱門資料