RabbitMQ的應用場景

2022-06-27 06:06:09 字數 884 閱讀 6048

1. 非同步處理

使用者註冊後,需要發註冊郵件和註冊簡訊,傳統的方式:序列和並行。

序列:使用者註冊資訊寫入資料庫 ------>  傳送郵件 -------> 傳送簡訊 ----->註冊成功,使用者使用

並行:使用者註冊資訊寫入資料庫 ------>  傳送郵件 / 傳送簡訊  ------> 註冊成功,使用者使用

因為郵件和簡訊並不是註冊所必需的,即使不接收郵件和簡訊,使用者也可以進行操作了。

rmq:使用者註冊資訊寫入資料庫 ------>  寫入訊息佇列/ 註冊成功,使用者使用 -------> 傳送郵件 -----> 傳送簡訊

2. 應用解耦

雙11購物節,使用者下單,訂單系統需要通知庫存系統,傳統的做法是訂單系統呼叫庫存系統的介面,缺點:當庫存系統出現故障,訂單就會失敗,會損失大量的訂單。 

傳統:訂單系統 ----呼叫庫存介面-----> 庫存系統

rmq:訂單系統  ---寫入訊息---->訊息佇列<-----訂閱訊息--庫存系統

3. 流量削峰

秒殺活動,一般因為流量過大,導致某個應用掛掉,為了解決這個問題,一般在應用前端加入訊息佇列。

rmq:使用者請求---寫入訊息--->訊息佇列----根據規則讀取秒殺請求---> 秒殺業務處理系統

1、 使用者的請求,伺服器收到之後,會加入到訊息佇列,加入訊息佇列的訊息達到最大值,直接拋棄使用者請求,或跳轉到錯誤頁面。

2、秒殺業務根據訊息佇列的請求,再做後續處理。

rabbitmq 應用場景

rabbitmq,或者說amqp解決了什麼問題,或者說它的應用場景是什麼?對於乙個大型的軟體系統來說,它會有很多的元件或者說模組或者說子系統或者 subsystem or component or submodule 那麼這些模組的如何通訊?這和傳統的ipc有很大的區別。傳統的ipc很多都是在單一系...

RabbitMQ應用場景

在大多數應用中,可通過訊息服務中介軟體來提公升系統非同步通訊,擴充套件解耦能力。比如,非同步處理 以使用者註冊為例 首先將使用者的註冊資訊寫入資料庫,然後給使用者傳送郵件,並且發一封簡訊。第一種方法 按照以前的同步方式,寫入資料庫調發郵件方法,發完郵件調發簡訊方法,每個需要50毫秒,算上寫入資料庫,...

RabbitMQ的幾種應用場景

1.a關注b,b傳送一條動態,a要能收到推送,或者要朋友圈有顯示 2.併發寫資料庫的時候 可以先放mq佇列,然後再寫資料 比如遊戲 同時使用多執行緒 3.其實很多地方都可以用訊息佇列,只要你想用基本都能用上,就看需不需要,如果是指普通的小使用者量,只需要直接請乙個新的執行緒跑就可以了 4.還有就是日...