勵志

勵志人生知識庫

mq的意思

訊息佇列

MQ是訊息佇列(Message Queue)的縮寫,它是一種用於在應用程式之間傳遞訊息的技術。MQ的主要功能包括:

解耦:允許一個業務需要多個模組共同實現,或一條訊息有多個系統對應處理,只需要在主業務完成以後,傳送一條MQ,其餘模組消費MQ訊息,即可實現業務,降低模組之間的耦合。

異步:主業務執行結束後,從屬業務通過MQ異步處理,減少業務的回響時間,提高用戶體驗。

削峰:在高並發情況下,業務異步處理,提供高峰期業務處理能力,避免系統癱瘓。

MQ的實現方式包括生產者產生訊息並把傳輸的數據(訊息)放在佇列中,消費者可以到指定的佇列拉取訊息,或者訂閱相應的佇列,由MQ服務端給其推送訊息。MQ服務通常需要獨立部署在伺服器上,提供接口給其他系統調用。

MQ的缺點包括系統可用性降低,依賴服務越多,服務越容易掛掉,需要考慮MQ癱瘓的情況。同時,系統的複雜性提高,需要考慮訊息丟失、訊息重複消費、訊息傳遞的順序性,以及主業務和從屬業務一致性的處理。

MQ遵循JMS(Java Message Service)規範,同時也支持另一個套用層協定AMQP,後者是語言無關的,不受產品語言等限制,例如rabbitMQ就支持這個協定。