RabbitMQ名詞解釋

RabbitMQ是實現了高級消息隊列協議(AMQP)的開源消息代理軟件(亦稱面向消息的中間件)

  • Producer:消息生產者。
  • Consumer:消息消費者。
  • Connection(連接):Producer 和 Consumer 通過TCP 連接到 RabbitMQ Server。
  • Channel(信道):基於 Connection 創建,數據流動都是在 Channel 中進行。
  • Exchange(交換器):生產者將消息發送到 Exchange(交換器),由 Exchange 將消息路由到一個或多個 Queue 中(或者丟棄);Exchange 並不存儲消息;Exchange Types 常用有 Fanout、Direct、Topic 三種類型,每種類型對應不同的路由規則。
  • Queue(隊列):是 RabbitMQ 的內部對象,用於存儲消息;消息消費者就是通過訂閱隊列來獲取消息的,RabbitMQ 中的消息都只能存儲在 Queue 中,生產者生產消息並最終投遞到 Queue 中,消費者可以從 Queue 中獲取消息並消費;多個消費者可以訂閱同一個 Queue,這時 Queue 中的消息會被平均分攤給多個消費者進行處理,而不是每個消費者都收到所有的消息並處理。
  • Binding(綁定):是 Exchange(交換器)將消息路由給 Queue 所需遵循的規則。
  • Routing Key(路由鍵):消息發送給 Exchange(交換器)時,消息將擁有一個路由鍵(默認爲空), Exchange(交換器)根據這個路由鍵將消息發送到匹配的隊列中。
  • Binding Key(綁定鍵):指定當前 Exchange(交換器)下,什麼樣的 Routing Key(路由鍵)會被下派到當前綁定的 Queue 中。

另外,再說下 Exchange Types(交換器類型)的三種常用類型

  • Direct:完全匹配,消息路由到那些 Routing Key 與 Binding Key 完全匹配的 Queue 中。比如 Routing Key 爲cleint-key,只會轉發cleint-key,不會轉發cleint-key.1,也不會轉發cleint-key.1.2
  • Topic:模式匹配,Exchange 會把消息發送到一個或者多個滿足通配符規則的 routing-key 的 Queue。其中*表號匹配一個 word,#匹配多個 word 和路徑,路徑之間通過.隔開。如滿足a.*.c的 routing-key 有a.hello.c;滿足#.hello的 routing-key 有a.b.c.helo
  • Fanout:忽略匹配,把所有發送到該 Exchange 的消息路由到所有與它綁定 的Queue 中。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章