聊聊mq的使用場景

2022-03-20 02:08:20 字數 1269 閱讀 7742

通過非同步方式對系統解耦

增加系統的併發處理能力

以使用者註冊為例,一般情況下:

註冊過程會呼叫4個服務(註冊服務、郵件服務、簡訊服務、積分服務),服務之間依賴性太強,任何乙個服務不可用,直接影響整個註冊業務

介面耗時太長,每個服務耗時100ms,註冊流程耗時400ms

對使用者來說,使用者資訊入庫是主要的業務流程,其他並不是響應使用者過程中直接關注的邏輯,可以非同步進行處理

採用mq的方式實現:

過程:

將依賴於3個服務轉換為只依賴於mq服務,只需要保證註冊服務、mq服務高可用,即可以保證註冊服務的高可用,相比保證其他3個服務高可用上容易了許多。

以電商中的秒殺場景為例,採用同步處理:

分析一下,存在的問題:

從上面可以看出,從接受使用者請求到響應使用者請求,未訪問資料庫,只有生成編號和傳送訊息的操作,這部分處理速度是非常快的,不存在效能的問題,資料庫也不存在壓力的問題了,所有使用者的請求都被作為一條訊息投遞到mq進行非同步處理;從而解決了秒殺中同步處理遇到的各種問題。

其他一些使用場景

系統日誌的處理

系統手機日誌,非同步傳送到mq,日誌服務隊從mq中拉取訊息進行各種處理,關於這個以後我們會專門討論。

通過事件驅動的一些業務,也可以使用mq實現

mq是採用非同步的方式來解決系統耦合性的問題,併發處理的問題;重點是在於非同步,那麼什麼情況下使用非同步呢?當呼叫方不強依賴於被呼叫方的結果的時候,可以採用非同步的方式進行處理,此時可以使用mq。

當呼叫方強依賴於被呼叫方的結果的時候,需要使用同步的方式,不能使用mq

mq系列整個內容,我們將討論

mq的使用場景

業務系統中投遞訊息的幾種方式?

如何確保投遞訊息一定成功?

訊息消費的幾種方式

如何確保訊息至少消費一次

如何保證訊息消費的冪等性

MQ 的使用場景 一)

一 訊息佇列概述 訊息佇列中介軟體是分布式系統中重要的元件,主要解決應用解耦,非同步訊息,流量削鋒等問題,實現高效能,高可用,可伸縮和最終一致性架構。目前使用較多的訊息佇列有activemq,rabbitmq,zeromq,kafka,metamq,rocketmq 二 訊息佇列應用場景 以下介紹訊...

MQ的應用場景

場景說明 使用者註冊後,需要發註冊郵件和註冊簡訊來告知使用者註冊成功,傳統的做法有兩種 1.序列的方式 2.並行的方式 場景 雙11是購物狂節,使用者下單後,訂單系統需要通知庫存系統,傳統的做法就是訂單系統呼叫庫存系統的介面.這種做法有乙個缺點 當庫存系統出現故障時,訂單就會失敗。訂單系統和庫存系統...

MQ死信佇列的應用場景

1 生產者進行新增,20s後不進行消費,發現訊息從正常的佇列進入了死信佇列 2 生產者進行新增,消費者進行消費 3 設定死信佇列要根據具體的業務場景去應用,一般應用在當正常業務處理時出現異常時,將訊息拒絕則會進入到死信佇列中,有助於統計異常資料並做後續處理 三 利用jemeter進行壓力測試 1 向...