MQ消息隊列在軟件開發中的作中


MQ的作用是非常之大的。

1、解耦。

當一個大型的系統。比如,商城系統。包括以下的功能:

1、發郵件

2、發短信

3、抽獎

4、搜索等

如果你都用一台服務器,做到一個程序里,代碼會非常龐大,不利於維護。同時一台服務器的機器性能也跟不上。

我們用MQ來做,它們之間的通信,直接用MQ。

2、銷峰。

假如你的秒殺活動,同時有一大批人在搶購,這個時候,如果你每個人都等待走完整的流程,那么系統會非常的延遲、我們也沒有辦法保證一定是按順序執行的、有可能會多買,兩個用戶同時中獎等,數據不完。如果我們可以把用戶提交的內容直接入MQ,用戶就不用等待,同時有多台服務器來完成后續的任務。因為消息是順序的,也保證了排隊的公平性和不出錯。

3、定時任務。

定時任務是一個頭痛的問題,通常我們把消息寫入數據庫,用一個線程來監視,當時間到了之后就開始執行。這種做法太麻煩、因為它沒辦法做成柱塞式的,所以性能有影響,同時也容易出錯,直接做成MQ來通知,豈不是更好!節省了一大堆時間,也保證了不會出現時間錯誤!

 

RabbitMQ、

Redis、

ZeroMQ、

ActiveMQ、

Jafka/Kafka

它們各有優缺點,但是總體來說,我還是喜歡用雲。因為太簡單了。不用自己架設服務器!

 

有了MQ這種東西,你很容易做出高可靠性的,游戲,電商,社交等應用。。。。

棋牌游戲中,聊天,出牌,等消息處理

電商中,解耦、分布式、銷峰

社交中,聊天室,如果你的消息是自己轉發的,那么幾萬個人的時候,你有水平、硬件需要有多高、多強大才有滿足呢?

 


免責聲明!

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



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