RabbitMQ 深入淺出

什麼是 RabbitMQ

RabbitMQ 是在各企業中最為廣泛使用的 Message Queue

RabbitMQ 采用了 AMQP(Advanced Message Queuing Protocol)協議來實現消息的傳遞。

在 AMQP 中,消息由三部分組成:交換器(Exchange)、佇列(Queue)和綁定(Binding)。

交換器(Exchange)佇列(Queue) 用來存儲消息,

綁定(Binding) 則是將交換器和佇列關聯起來,以便將消息從交換器路由到相應的佇列中。

Message Queue 就是把 訊息(Message) 放到 佇列(Queue)

我們可以把它想成是「郵局」,作為「寄件者」與「收件者」之間訊息傳遞的橋樑,

郵局的功用除了確認這些訊息準確地傳遞外,

最大的好處就是傳遞失敗的時候訊息(郵件)還會保留在郵局中,

另外此套服務支援眾多語言,

詳細可以參考這篇RabbitMQ Tutorialsopen in new window

重要名詞介紹

  • Producer

    生產者,發送訊息的服務

  • Consumer

    消費者,負責接收訊息的服務

  • Queue

    想成是一個郵箱,存放生產者發送的訊息

  • Exchange

    交換機,接收生產者的訊息,然後傳遞給路由完全匹配的 Queue

  • Binding

    主要告訴Exchange負責哪些 Queue , 跟 Exchange 一起使用

RabbitMQ的消息模式

  1. Direct 模式
  2. Worker 模式
  3. Publish/Subscribe 模式
  4. Routing 模式
  5. Topics 模式

Direct 模式

P(producer/ publisher):生產者,發送訊息的服務

C(consumer):消費者,接收訊息的服務

紅色區域就是MQ中的Queue,可以把它理解成一個郵局

首先信件來了不強求必須馬上拿走

其次,它是有最大容量的(受主機和磁碟的限制,是一個緩存區)

允許多個消費者監聽同一個佇列,爭搶訊息

參考連結

Last Updated:
Contributors: 蕭文暉(Wenhui)
Loading...