初識MQ

【參考文章】:到底何時該使用MQ?

1. 什麼是MQ?

  消息隊列(Message Quene)是一種跨進程的通訊機制,用於上下游傳遞消息異步

  MQ是一種很是常見的上下游「邏輯解耦+物理解耦」的消息通訊服務。spa

  使用了MQ以後,消息發送上游只須要依賴MQ,邏輯上和物理上都不用依賴其餘服務。隊列

2. 何時不使用MQ?

  結論:調用方實時依賴執行結果的業務場景,請使用調用,而不是MQ進程

  好比:用戶登陸場景,登陸頁面調用passport服務,passport服務的執行結果直接影響登陸結果,此處的「登陸頁面」與「passport服務」就必須使用調用關係,而不能使用MQ通訊。get

3. 何時使用MQ?

  1)數據驅動的任務依賴:多個任務執行有前後關係,且任務2依賴前面的任務1結果。任務2訂閱任務1,任務1完成後發送消息到MQ,任務2接收到消息後開始執行。消息隊列

  2)上游不關心下游執行結果:上游只須要產生消息便可,下游自行消費。it

  3)異步返回執行時間長:回調網關+MQclass

4. MQ的優劣

4.1 MQ的優點

  1)解耦登錄

  2)數據持久化到被徹底處理,規避數據丟失的風險qq

  3)增長靈活性和峯值處理能力

  4)MQ中的消息是有序的

  5)異步通訊機制

4.2 MQ的劣勢

  1)系統更復雜,多了一個MQ組件

  2)消息傳遞路徑更長,延時會增長

  3)消息可靠性和重複性互爲矛盾,消息不丟不重難以同時保證

  4)上游沒法知道下游的執行結果,這一點是很致命的

相關文章
相關標籤/搜索