1. 程式人生 > 其它 >教師資格證準備策略

教師資格證準備策略

RabbitMQ

基本物件
  • producer
  • channel
    • 多個相互隔離
  • exchange(交換機)
    • Fanout
    • Direct
    • Headers
    • Topic
  • queue
  • consumer
工作模式
  1. work queues

    • graph LR p -->x -->q q -->c1 q -->c2
    • 訊息不會被重複消費

    • 適用於消費速度慢,需要多個消費者

  2. publish/subscribe

    • exchange為fanout 模式

    • graph LR p -->x x -->q1 -->c1 x -->q2 -->c2
    • 一條訊息會多個消費者同時消費

    • 如:下完訂單後,郵件通知使用者同時簡訊通知使用者

  3. Routing

    • exchange為direct 模式

    • 根據routing key傳送到對應的queue,如果綁定了多個queue那麼會都發送

    • routing key繫結在queue上

    • 可取代【釋出/訂閱】模式(不同的queue上繫結同樣的routing key),更強大

  4. Topics(萬用字元)

    • exchange為Topic 模式

    • Routing的高階版本,Routing是等於,Topics是萬用字元(# or *)

    • #能匹配一個或多個(每個詞中間以.分隔)

    • *只能匹配一個

    • 如:下完訂單後,有的想只接收簡訊,有的想只接收email,有的想全部接收

      • routing key : inform.#.email.#
  5. Header

    • exchange為headers 模式
    • 沒有routing key,使用key/value
    • 不常用
  6. RPC

    • exchange為direct 模式

    • 客戶端遠端呼叫服務端方法,使用MQ實現RPC的非同步呼叫

    • graph LR p -->queue1 -->c c -->queue2 -->p
      • client傳送一條請求訊息在佇列中
      • server處理好後,傳送一條回覆訊息在另一個佇列中
      • client收到 即完成了非同步呼叫
實現步驟
  1. 建立連線
  2. 建立channel
  3. 宣告queue
  4. 宣告exchange (設定型別)
  5. 繫結queue (設定routing key)
  6. 釋出 Basic Publish(指定exchange、routing key、訊息體)
  7. 訂閱 Basic Consume (指定queue、繫結具體的consumer)