複製鏈接
請複製以下鏈接發送給好友

MQ

(消息隊列)

鎖定
MQ是消息隊列(Message Queue)的簡稱,是基礎數據結構中“先進先出”的一種數據結構。一般用來解決應用解耦,異步消息,流量削峯等問題,實現高性能,高可用,可伸縮和最終一致性架構。
中文名
消息隊列
外文名
Message Queue
提    供
強大、 安全、 穩定的消息數據傳遞
典型應用
解耦、削峯、異步。
常見產品
RabbitMQ,RocketMQ,ActiveMQ,ZeroMQ,Kafka,IBM WebSphere

MQMQ 介紹

MQ(Message Queue)消息隊列,是基礎數據結構中“先進先出”的一種數據結構。指把要傳輸的數據(消息)放在隊列中,用隊列機制來實現消息傳遞——生產者產生消息並把消息放入隊列,然後由消費者去處理。消費者可以到指定隊列拉取消息,或者訂閲相應的隊列,由MQ服務端給其推送消息。 [1] 
MQ的作用
消息隊列中間件分佈式系統中重要的組件,主要解決應用解耦,異步消息,流量削峯等問題,實現高性能,高可用,可伸縮和最終一致性架構。 [2] 
解耦:一個業務需要多個模塊共同實現,或者一條消息有多個系統需要對應處理,只需要主業務完成以後,發送一條MQ,其餘模塊消費MQ消息,即可實現業務,降低模塊之間的耦合
異步:主業務執行結束後從屬業務通過MQ,異步執行,減低業務的響應時間,提高用户體驗
削峯:高併發情況下,業務異步處理,提供高峯期業務處理能力,避免系統癱瘓。
MQ的缺點 [3] 
1、系統可用性降低。依賴服務越多,服務越容易掛掉。需要考慮MQ癱瘓的情況
2、系統複雜性提高。需要考慮消息丟失、消息重複消費、消息傳遞的順序性
3、業務一致性。主業務和從屬業務一致性的處理

MQ主要的MQ產品

主要的MQ產品包括:RabbitMQActiveMQ、RocketMQ、ZeroMQ、Kafka、IBM WebSphere 等。
參考資料