Home
Posts
Categories
Series
Tags
About
Message Queue[一] Mq基礎
postedOn: 2023-11-18   updatedOn: 2023-11-18   includedIn: 程式
wordsCount: 494   readingTime: 1 min   viewers:

MessageQueue(MQ)

訊息貯列,協助訊息以非同步方式溝通,常見協議MQTT,AMQP

訊息代理人

經紀人Broker

訊息發送者

生產者Producer

訊息接收者

消費者Consumer

常見的直接溝通,轉換為間接溝通

發送後就等待請求,必須等待請求者接收訊息並處理才回覆,在Mq加入後,解耦合了發送者與接收者

所以 Mq常被稱為代理人Broker,而發送者也不再面對接收者,轉為訊息的Producer,接收者轉為訊息的Consumer

優勢

  1. 生產者不用等待消費者處理完成,非同步,如果是網站後端,可以將長時間任務解耦合出去,提早給網站使用者回覆
  2. 原本一對一的溝通,可以因為加入Mq,採用Topic的方式,一次對多個Consumer溝通
  3. 在符合MQTT的Mq中,通常訊息比HTTP協議夾帶更小量資訊,在IOT領域,節省很多資源
  4. 在符合AMQP的Mq中,加入exchange角色,讓訊息發布方式可以更複雜,訊息可以暫存

缺點

  1. 在多個微服務裡面,一件完整的業務,被用Mq解耦合後,如果中途失敗,要如何保持整件事情的交易完整性,是需要思考的
  2. 在系統未到需要Mq的情況下,提前引入Mq當代理,反而提升了整體複雜度
  3. 在系統的穩定度上,多了一個不確定的因素