springboot高階 訊息佇列相關

2021-10-05 16:05:05 字數 820 閱讀 6549

訊息佇列是什麼,有什麼好處?

我們可以把訊息佇列比作是乙個存放訊息的容器,當我們需要使用訊息的時候可以取出訊息供自己使用。訊息佇列是分布式系統中重要的元件,使用訊息佇列主要是為了通過非同步處理提高系統效能和削峰、降低系統耦合性。目前使用較多的訊息隊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...