国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

消息隊列mq的作用

2023-03-02 21:21 作者:nannanya13  | 我要投稿

現(xiàn)在的系統(tǒng)都是拆分成多個模塊,模塊直接需要相互調(diào)用來完成協(xié)作。比如商城系統(tǒng),用戶下單時,需要跟訂單系統(tǒng),庫存系統(tǒng),物流系統(tǒng)等多個系統(tǒng)打交道。而且后續(xù)還需要添加更多的系統(tǒng)。

歡迎關(guān)注公眾號:Java面試教程 ,回復(fù)關(guān)鍵字qqq,領(lǐng)取2023面試大全資料?

這樣會導(dǎo)致兩個問題

  • 調(diào)用系統(tǒng)太多,訂單系統(tǒng)成功了,但是調(diào)用物流系統(tǒng)失敗,需要多次重試調(diào)用該系統(tǒng)直到成功,或者回滾訂單系統(tǒng),返回用戶重試,這樣導(dǎo)致響應(yīng)時間長,且系統(tǒng)設(shè)計復(fù)雜

  • 如果后續(xù)需要添加更多的系統(tǒng),需要改造訂單系統(tǒng),不符合系統(tǒng)設(shè)計的開閉原則

引入mq消息中間件后
用戶下訂單后,訂單系統(tǒng)發(fā)送下單成功消息到mq就返回響應(yīng)給用戶了,其他系統(tǒng)通過訂閱消息topic來消費消息,執(zhí)行各自的業(yè)務(wù)邏輯。

  • 依賴mq消息不丟失,可確保其他系統(tǒng)一定會調(diào)用成功,解決了第一個問題;

  • 如果需要添加更多系統(tǒng)交互,只需要訂閱消息的topic,就能消費下單成功的消息,不需要改動到訂單系統(tǒng),解決了第二個問題。

這樣引入了消息隊列中間件之后,就和其他系統(tǒng)解耦了。

二.異步

系統(tǒng)由多個模塊組成時,用戶一個請求,往往需要調(diào)用多個模塊才能返回響應(yīng)。這樣會導(dǎo)致用戶響應(yīng)變慢。如下圖,調(diào)用方式如果是同步的,用戶需要等待16s才能得到響應(yīng)結(jié)果。


引入了mq中間件后
請求A系統(tǒng)+投遞消息到消息隊列約1s,B系統(tǒng)和C系統(tǒng)異步消費mq消息,這樣可以大大縮短響應(yīng)時間,提高系統(tǒng)的吞吐量,性能可以大大的提高。


三.削峰填谷

我們在搞秒殺活動時,往往會影響大量的用戶同時請求下單,這樣如果超過了訂單系統(tǒng)的可承受訪問,就會把系統(tǒng)壓垮,導(dǎo)致用戶無法下單。


引入了mq中間件后
用戶請求先生產(chǎn)消息,發(fā)送到mq,由訂單系統(tǒng)消費mq消息,來處理用戶下單請求,下單請求完成時,通過短信方式通知用戶。


消息隊列mq的作用的評論 (共 條)

分享到微博請遵守國家法律
乌鲁木齐市| 吴旗县| 托克逊县| 葵青区| 剑河县| 修武县| 湖州市| 阜新市| 苗栗县| 辽阳县| 红安县| 土默特右旗| 教育| 竹山县| 寿阳县| 安泽县| 天柱县| 西宁市| SHOW| 凤台县| 白朗县| 武山县| 建始县| 伊宁县| 司法| 竹北市| 夏河县| 正蓝旗| 清新县| 庆城县| 南汇区| 仙桃市| 兴仁县| 阿克| 怀仁县| 芦溪县| 苍梧县| 那曲县| 海原县| 沙洋县| 彭州市|