RabbitMQ常用Exchange交換機詳解(RabbitMQ學習筆記 2)

一、Exchange簡介

1.1 工作流程

Exchange的作用就是接收消息,然後根據路由鍵將消息轉發到相應的隊列中
如下圖所示,左側的 ClientA 和 ClientB 是消息的生產者,將消息發送到 Exchange上,然後Exchange將消息轉發到 Quene隊列中,最後右側的Clinet1、Clinet2、Clinet3 消費消息。

在這裏插入圖片描述

1.2 Exchange的屬性

Name: 交換機名稱
Type: 交換機類型包括 direct、topic、fanout、headers等
Durability: 是否持久化(true / false)
Auto Delete: 當最後一個綁定到Exchange上的隊列刪除後,自動刪除該Exchange
Internal: 當前Exchange是否用於RabbitMQ內部使用,默認爲false。一般來說我們使用時都是置爲false
Arguments: 擴展參數,用於擴展AMQP協議自制定化使用

二、Exchange的類型

2.1 Direct Exchange

**概念:**使用這種交換機時,我們不需要將 Quene 綁定到 Exchange 上,他的轉發規則是將消息轉發到和 RouteKey 名稱完全一致的隊列中。也就是說,如果我填寫的 RouteKey 是 test1,那麼這條消息就會被名稱爲 test1的 Quene 接收,如果沒有名爲 test1的 Quene 那麼這條消息就會被拋棄。
注意: Direct 模式可以使用 RabbitMQ 自帶的 Exchange:default Exchange
在這裏插入圖片描述

2.2 Topic Exchange

概念: 使用這種交換機時,隊列 Quene 的 RouteKey是通配符的形式,可以匹配到多個 RouteKey。從下圖中我們可以清晰的看出匹配規則
通配符 可以使用 * 或 #
log.*可以匹配到一部分如 log.xx
log.#可以匹配到所有如 log.xx.xx

在這裏插入圖片描述

2.3 Fanout Exchange

概念: 之前兩種類型的交換機都是根據 RouteKey 進行消息的轉發,而這一種是不處理 RouteKey 的。發送到交換機上的消息會被轉發到綁定在該交換機上的所有隊列中。(相當於是一個廣播的作用,所有人都可以收到)
特點: 轉發消息的速度是最快的(這一點也很好理解,因爲它不需要去做RouteKey的匹配,直接轉發就好)
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章