不知道為啥用MQ,這就尷尬了

2021-10-23 09:47:27 字數 1491 閱讀 1808

為什麼使用訊息佇列?

使用訊息佇列有什麼缺點?

訊息佇列如何選型?

分析:乙個用訊息佇列的人,不知道為啥用,這就有點尷尬。沒有複習這點,很容易被問蒙,然後就開始胡扯了。

回答:這個問題,咱只答三個最主要的應用場景(不可否認還有其他的,但是只答三個主要的),即以下六個字:解耦、非同步、削峰

(1)解耦

傳統模式:

傳統模式的缺點:

系統間耦合性太強,如上圖所示,系統a在**中直接呼叫系統b和系統c的**,如果將來d系統接入,系統a還需要修改**,過於麻煩!

中介軟體模式:

中介軟體模式的的優點:

將訊息寫入訊息佇列,需要訊息的系統自己從訊息佇列中訂閱,從而系統a不需要做任何修改。

(2)非同步

傳統模式:

傳統模式的缺點:

一些非必要的業務邏輯以同步的方式執行,太耗費時間。

中介軟體模式:

中介軟體模式的的優點:

將訊息寫入訊息佇列,非必要的業務邏輯以非同步的方式執行,加快響應速度

(3)削峰

傳統模式

傳統模式的缺點:

併發量大的時候,所有的請求直接懟到資料庫,造成資料庫連線異常

中介軟體模式:

中介軟體模式的的優點:

系統a慢慢的按照資料庫能處理的併發量,從訊息佇列中慢慢拉取訊息。在生產中,這個短暫的高峰期積壓是允許的。

分析:乙個使用了mq的專案,如果連這個問題都沒有考慮過,就把mq引進去了,那就給自己的專案帶來了風險。我們引入乙個技術,要對這個技術的弊端有充分的認識,才能做好預防。要記住,不要給公司挖坑!

回答:回答也很容易,從以下兩個個角度來答

系統可用性降低:你想啊,本來其他系統只要執行好好的,那你的系統就是正常的。現在你非要加個訊息佇列進去,那訊息佇列掛了,你的系統不是呵呵了。因此,系統可用性降低

系統複雜性增加:要多考慮很多方面的問題,比如一致性問題、如何保證訊息不被重複消費,如何保證保證訊息可靠傳輸。因此,需要考慮的東西更多,系統複雜性增大。

但是,我們該用還是要用的。

就要自己去官網看一下更新的速度,如果在專案使用**現bug能不能快速解決。

我不知道為什麼

我不知道為什麼 代騰飛 2008年10月4日 於成都 是不是我溫情的火不到火候 溫暖不了你愛的心窩 是不是我對你付出的不夠多 才讓你對我如此冷落 曾經的陰差陽錯 讓我們彼此中斷了所有聯絡 從此你不再我的世界裡出沒 我也同樣淡出了你的生活 只是我不知道為什麼 經過了這麼多年以後 我的心依然為你著魔 每...

演算法 不知道有啥用的拓撲排序

一共有好多件事情 事情a要再事情b 或者更多 事情做完才能做 然後排序!有向無環圖 乙個網上找的圖便於理解 下列過程以此圖為例 記錄所有點的入度和出度 找到入度為0的點加入棧中 為a 棧頂元素輸出刪除並把與棧頂元素相連的點的入度減一 刪除過程中如果有入度為零的點也加入棧中 直到輸出的數等於n完成排序...

不知道為什麼,春招,被投公司都回覆不適合

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...