springboot高级——消息队列相关
寫在前邊:本文學(xué)習(xí)尚硅谷的springboot高級(jí)整理筆記。
消息隊(duì)列是什么,有什么好處?
??我們可以把消息隊(duì)列比作是一個(gè)存放消息的容器,當(dāng)我們需要使用消息的時(shí)候可以取出消息供自己使用。消息隊(duì)列是分布式系統(tǒng)中重要的組件,使用消息隊(duì)列主要是為了通過異步處理提高系統(tǒng)性能和削峰、降低系統(tǒng)耦合性。目前使用較多的消息隊(duì)ActiveMQ,RabbitMQ,Kafka,RocketMQ,我們后面會(huì)一一對(duì)比這些消息隊(duì)列。
第一個(gè)場(chǎng)景:異步處理
?異步處理的好處是:縮短了反饋的時(shí)間。
第二個(gè)場(chǎng)景:應(yīng)用解耦
?關(guān)于解耦我就不贅述重要性了。
第三個(gè)場(chǎng)景:流量削峰
???比方說一個(gè)秒殺需求,一用有10000件商品,如果每筆秒殺訂單,都去訪問一次數(shù)據(jù)庫,查一查庫存,那得花費(fèi)多長時(shí)間啊。
我們可以這樣做,用一個(gè)消息隊(duì)列,定制它的長度為10000,10000以內(nèi)可以存到消息隊(duì)列,一萬10000以后不再近消息隊(duì)列。
10000以內(nèi)立馬反饋一個(gè)秒殺成功。之后再去做減庫存等一系列操作。
?
?消息處理的幾種方式
?點(diǎn)對(duì)點(diǎn)式:
?生產(chǎn)者生產(chǎn)消息,存到消息隊(duì)列中去,消費(fèi)者去消息隊(duì)列里邊消費(fèi)。消費(fèi)一條消息,就從消息隊(duì)列移除一條消息,從而保證不重復(fù)消費(fèi)信息。
發(fā)布訂閱式:
??發(fā)送者發(fā)送一個(gè)消息主題,消費(fèi)者以訂閱的形式同時(shí)收到消息。
兩種規(guī)范
兩種規(guī)范的對(duì)比:
springboot對(duì)消息隊(duì)列的支持
RabbitMQ小入門
??消息隊(duì)列里邊的交換器就像我們網(wǎng)絡(luò)中的路由器一樣。根據(jù)消息的路由鍵來確定去哪個(gè)消息隊(duì)列。
?我自己制作了一張圖
?老師的一張圖
rabbitMQ的運(yùn)行機(jī)制
rabbitMQ的交換器exchange類型
?
————————————————
版權(quán)聲明:本文為CSDN博主「水的精神」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/star1210644725/article/details/90902365
總結(jié)
以上是生活随笔為你收集整理的springboot高级——消息队列相关的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Boot:使用Rabbit
- 下一篇: 什么是消息队列 RocketMQ 版?