訊息佇列是什麼,有什麼好處?
我們可以把訊息佇列比作是乙個存放訊息的容器,當我們需要使用訊息的時候可以取出訊息供自己使用。訊息佇列是分布式系統中重要的元件,使用訊息佇列主要是為了通過非同步處理提高系統效能和削峰、降低系統耦合性。目前使用較多的訊息隊activemq,rabbitmq,kafka,rocketmq,我們後面會一一對比這些訊息佇列。
第乙個場景:非同步處理
非同步處理的好處是:縮短了反饋的時間。
第二個場景:應用解耦
關於解耦我就不贅述重要性了。
第三個場景:流量削峰
比方說乙個秒殺需求,一用有10000件商品,如果每筆秒殺訂單,都去訪問一次資料庫,查一查庫存,那得花費多長時間啊。
我們可以這樣做,用乙個訊息佇列,定製它的長度為10000,10000以內可以存到訊息佇列,一萬10000以後不再近訊息佇列。
10000以內立馬反饋乙個秒殺成功。之後再去做減庫存等一系列操作。
訊息處理的幾種方式
點對點式:
生產者生產訊息,存到訊息佇列中去,消費者去訊息佇列裡邊消費。消費一條訊息,就從訊息佇列移除一條訊息,從而保證不重複消費資訊。
發布訂閱式:
傳送者傳送乙個訊息主題,消費者以訂閱的形式同時收到訊息。
兩種規範
兩種規範的對比:
springboot對訊息佇列的支援
rabbitmq小入門
訊息佇列裡邊的交換器就像我們網路中的路由器一樣。根據訊息的路由鍵來確定去哪個訊息佇列。
我自己製作了一張圖
老師的一張圖
rabbitmq的執行機制
rabbitmq的交換器exchange型別
spring boot 訊息佇列
org.springframework.boot spring boot starter activemq 2.0.6.release spring.activemq.broker url tcp localhost 16161 預設保持在記憶體中 true 持久化 false spring.act...
SpringBoot 整合RbbitMQ佇列3踩坑
1 找不到佇列 2019 07 03 13 11 11.106 warn 11944 ctaskexecutor 1 o.s.a.r.listener.blockingqueueconsumer failed to declare queue hello 2019 07 03 13 11 11.11...
Spring Boot高階之Web高階
1 使用aop處理請求 springboot使用aop處理請求 將 before和 after中的路徑屬性提取出來 將通用的路徑提取出來 pointcut execution public com.hytxwz.girl.controller.public void log before log p...