ActiveMQ是什么,為什么使用MQ


是基於 Java 中的 JMS 消息服務規范實現的一個消息中間件。

1.系統解耦

采用中間件之后,就可以完美解決上述中因為耦合可能導致的問題。系統 A 不用去

關心下層服務調用方的問題。

2. 異步調用

當一個請求處理需要經過 3 個系統的時候,A 和 B 系統處理時間 3ms 時間,這個是非

常快的,但是 C 系統可能需要 30s 才能處理完。這樣整個業務處理時間因為 C 系統導

致非常慢。

比如我們在美團或者餓了嗎下單,那么在下單的時候,后台需要通過后台處理:訂單支

付->賬戶扣款->創建訂單->通知商家准備菜品->安排騎手

這個時候我們對於扣款和創建訂單來講對於時效性要求強,處理效率也比較高。對於通

知商家准備菜品和安排騎手來講時效性的要求不是很高,處理時間也可能會稍長。這個

時候就可以使用 mq 進行異步處理,先處理完前面的業務,然后反饋給用戶,之后再通

過 mq 處理通知商家准備菜品和安排騎手

3.流量削峰

大部分時候,每秒幾百請求,一台機器就足夠了,但是為了抗那每天瞬時的高峰,硬是

部署了 10 台機器,每天就那半個小時有用,別的時候都是浪費資源的。

但是如果你就部署一台機器,那會導致瞬時高峰時,一下子壓垮你的系統,因為絕對無

法抗住每秒幾千的請求高峰。此時我們就可以用 MQ 中間件來進行流量削峰

所有機器前面部署一層 MQ,平時每秒幾百請求大家都可以輕松接收消息。一旦到了瞬

時高峰期,一下涌入每秒幾千的請求,就可以積壓在 MQ 里面,然后那一台機器慢慢

的處理和消費。等高峰期過了,再消費一段時間,MQ 里積壓的數據就消費完畢了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM