更新時(shí)間:2020-05-20 11:41:09 來源:動(dòng)力節(jié)點(diǎn) 瀏覽4603次
消息隊(duì)列是指能夠提供消息排隊(duì)消費(fèi)功能的軟件程序,是消息隊(duì)列中間件的一部分。消息隊(duì)列中間件是分布式系統(tǒng)中重要的組件。接下來要分享的小編就給大家講解消息隊(duì)列的優(yōu)勢(shì)、類型以及使用場(chǎng)景。
主要解決應(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)定性、安全性。
1.應(yīng)用解耦。消息隊(duì)列可以使消費(fèi)者和生產(chǎn)者直接互不干涉、互不影響,只需要把消息發(fā)送到隊(duì)列即可,而且可獨(dú)立的擴(kuò)展或修改兩邊的處理過程。常見場(chǎng)景:用戶下單后,訂單系統(tǒng)需要通知庫存系統(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ù)處理的順序很重要,比如商品下單順序等。
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java菜鳥教程之消息隊(duì)列”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743