消息隊(duì)列中間件是分布式系統(tǒng)中重要的組件,主要解決應(yīng)用耦合,異步消息,流量削鋒等問(wèn)題。實(shí)現(xiàn)高性能,高可用,可伸縮和最終一致性架構(gòu),使用較多的消息隊(duì)列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ
異步處理
用戶(hù)注冊(cè)后,需要發(fā)注冊(cè)郵件和注冊(cè)短信。傳統(tǒng)的做法有兩種1.串行的方式;2.并行方式。
(1)串行方式:將注冊(cè)信息寫(xiě)入 數(shù)據(jù)庫(kù) 成功后,發(fā)送注冊(cè)郵件,再發(fā)送注冊(cè)短信。以上三個(gè)任務(wù)全部完成后,返回給客戶(hù)端。
(2)并行方式:將注冊(cè)信息寫(xiě)入數(shù)據(jù)庫(kù)成功后,發(fā)送注冊(cè)郵件的同時(shí),發(fā)送注冊(cè)短信。以上三個(gè)任務(wù)完成后,返回給客戶(hù)端。與串行的差別是,并行的方式可以提高處理的時(shí)間。
應(yīng)用解耦
場(chǎng)景說(shuō)明:用戶(hù)下單后,訂單系統(tǒng)需要通知庫(kù)存系統(tǒng)。傳統(tǒng)的做法是,訂單系統(tǒng)調(diào)用庫(kù)存系統(tǒng)的接口。
流量削鋒
流量削鋒也是消息隊(duì)列中的常用場(chǎng)景,一般在秒殺或團(tuán)搶活動(dòng)中使用廣泛。
應(yīng)用場(chǎng)景:秒殺活動(dòng),一般會(huì)因?yàn)榱髁窟^(guò)大,導(dǎo)致流量暴增,應(yīng)用掛掉。為解決這個(gè)問(wèn)題,一般需要在應(yīng)用前端加入消息隊(duì)列。
可以控制活動(dòng)的人數(shù)
可以緩解短時(shí)間內(nèi)高流量壓垮應(yīng)用。
日志處理
日志處理是指將消息隊(duì)列用在日志處理中,比如Kafka的應(yīng)用,解決大量日志傳輸?shù)膯?wèn)題。
消息通訊
消息通訊是指,消息隊(duì)列一般都內(nèi)置了高效的通信機(jī)制,因此也可以用在純的消息通訊。比如實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)消息隊(duì)列,或者聊天室等。
- IoT邊緣的應(yīng)用場(chǎng)景_邊緣計(jì)算的發(fā)展_邊緣計(jì)算硬件
- 彈性負(fù)載均衡的應(yīng)用場(chǎng)景_負(fù)載方案_負(fù)載均衡的優(yōu)點(diǎn)-華為云
- 為什么要使用RabbitMQ_RabbitMQ如何實(shí)現(xiàn)高可用性_分布式消息-華為云
- GaussDB應(yīng)用場(chǎng)景_GaussDB數(shù)據(jù)庫(kù)應(yīng)用場(chǎng)景_高斯數(shù)據(jù)庫(kù)應(yīng)用_華為云
- CDN價(jià)格_CDN加速_CDN應(yīng)用場(chǎng)景