RabbitMQ MQ的優缺點

2021-10-23 17:57:04 字數 1582 閱讀 6225

一、優點

1、解耦

1)未使用mq之前

a系統嚴重依賴各種亂七八糟的系統耦合起來,a系統產生了乙個比較關鍵的資料,很多系統需要a系統把這個關鍵的資料傳過來。負責a系統的哥們還得考慮,如果a系統掛了怎麼辦?如果e系統訪問超時怎麼辦?我是不是需要做乙個重試機制?

2)使用mq之後

如果來乙個新系統e需要資料,直接從mq中消費即可。如果老系統d不需要這條資料了,就取消對mq的消費即可。系統a壓根不用考慮給誰發資料,不需要維護這個**,不需要考慮人家是否呼叫成功,失敗超時等。

小結:通過mq的發布和訂閱的這麼乙個模型,pub/sub模型,系統a就跟其他系統徹底解耦了。

我們需要考慮一下負責的專案中是否有類似的場景,就是1個系統或者乙個模組,呼叫了多個系統或者模組,相互之間的呼叫很複雜,維護起來很麻煩。但是這個呼叫是不需要同步介面的,如果用mq給它非同步化解耦,也是可以的。你就需要考慮在你的專案裡,是否可以用mq去進行系統的解耦。

2、非同步

1)不用mq的同步高延時請求

一般的網際網路企業,對使用者的直接操作,一般要求是每個請求在200ms以內完成,對使用者幾乎是無感知的。而按照上述同步執行,整個過程大概需要1秒。

2)使用mq非同步化之後的介面效能優化

系統從接受請求到相應給使用者共耗時20ms+5ms。對使用者a而言,無感知。

3、削峰

1)沒用mq的時候,高峰期系統***的場景

一般的mysql,抗到每秒2000的請求就差不多啦。如果每秒請求5000,可能就直接把mysql打死啦。如果mysql***,整個系統沒法用了,但是中午高峰期過了之後,到了下午,也就是1萬個使用者同時操作,每秒中可能就50個請求。

2)使用mq來進行削峰

每秒在mq積壓3000條訊息,1個小時積壓18萬條訊息,1個半小時左右差不多就沒有積壓啦。

二、缺點

1)系統可用性降低

mq一旦故障了,系統a就沒法傳送訊息給mq啦,然後系統bcd也沒法消費到訊息。整個系統就崩潰了,沒有辦法正常運轉啦。

2)系統複雜性變高

硬生生加了個mq,你怎麼保證消費沒有重複消費?怎麼處理訊息丟失的情況?怎麼保證訊息傳遞的順序性。問題一大堆,痛苦不已。

3)系統一致性問題

系統abc執行成功了,但是系統d執行失敗了。但是給使用者返回執行成功了,結果後台邏輯實際上是差了一點。完全沒有執行完。

剛構橋的優缺點 橋梁的優缺點

梁式橋 主梁為主要承重構件,受力特點為主梁受彎。主要材料為鋼筋混凝土 預應力混凝土,多用於中小跨徑橋梁。簡支梁橋合理最大跨徑約 公尺,懸臂梁橋與連續梁橋合宜的最大跨徑約 60 70 公尺。優點 採用鋼筋砼建造的梁橋能就地取材 工業化施工 耐久性好 適應性強 整體性好且 美觀 這種橋型在設計理論及施工...

演算法的優缺點 邏輯回歸演算法的優缺點

邏輯回歸演算法是最經典的幾個機器學習演算法之一,本文對它的優點,缺點進行總結。sigmoid函式 表示式如下 1.實現簡單,廣泛的應用於工業問題上 2.分類時計算量非常小,速度很快,儲存資源低 3.便利的觀測樣本概率分數 4.對邏輯回歸而言,多重共線性並不是問題,它可以結合l2正則化來解決該問題 5...

Struts的優缺點

struts是開源軟體,使開發者能更深入的了解其內部實現機制。struts 優點 業界 標準 很多成功案例 學習資源豐富。struts的優點主要集中體現在兩個方面 taglib和頁面導航。a 利用struts提供的taglib可以大大節約開發時間。b 維護擴充套件比較方便。通過乙個配置檔案,即可把握...