RabbitMQ 交換機、綁定、隊列、消息和虛擬主機詳解(7)

 1、Exchange 交換機

Exchange:接收消息,並根據路由鍵轉發消息所綁定的隊列

交換機的屬性:

Name:交換機名稱

Type:交換機類型 direct、topic、fanout、headers

Durability :是否需要持久化,true爲持久化

Auto Delete:當前最後一個綁定到Exchange上的隊列刪除後,自動刪除Exchange

Internal:當前Exchange是否用於RabbitMQ內部使用,默認False。

Arguments:擴展參數,用於擴展AMQP協議。

Exchange類型介紹:

Direct Exchange:所有發送到Direct Exchange的消息被轉發到RouteKey中指定的Queue。(Direct模式可以使用RabbitMQ自帶的Exchange:default Exchange,所以不需要將Exchange進行任何綁定操作,消息傳遞時,RouteKey必須完全匹配纔會被隊列接收,否則該消息會被拋棄)【routeKey必須完全匹配】

Topic Exchange:所有發送到Topic Exchange 的消息被轉發到所有關係RouteKey中指定Topic的Queue上。【routeKey正則匹配】

Fanout Exchange:不處理路由鍵,只需要簡單的將隊列綁定到交換機上;發送到交換機的消息都會被轉發到與該交換機綁定的所有隊列上;Fanout交換機轉發消息是最快的,因爲他不需要匹配路由鍵。【不需要routeKey 所有queue都能接收,廣播】

 2、綁定-Binding

Exchange和Exchange、queue之間的連接關係,Binding中可以包含RoutingKey或者參數。

3、消息隊列-queue

消息隊列,實際存儲消息數據的容器;

Durability:是否持久化,Durable:是,Transient:否。

Auto Delete:如選yes,代表當最後一個監聽被移除之後,該Queue會自動被刪除。

4、消息-Message

服務器和應用程序之間傳送的數據,本質上是一段數據,有Properties和Payload(Body)組成。

常用屬性:delivery mode 、header(自定義從、屬性)

 5、虛擬主機-Virtual Host

虛擬主機:用於進行邏輯隔離,最上層的消息路由。

一個Virtaul host裏面可以由若干個Exchange和Queue

同一個Virtual host裏面不能有相同名稱Exchange 或Queue

 

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