RabbitMQ提供了四種Exchange一刻絲稱子(交換)模式:fanout佛鬧特(分列),direct滴軟科特(直系),topic他陪克(主題),header 憨刀(頭部)。
一. Fanout Exchange(分列交換模式)
所有發送到Fanout(佛鬧特)Exchange(一刻絲稱子 )的消息都會被轉發到與該Exchange 綁定(Binding)的所有Queue上。
Fanout Exchange 不需要處理RouteKey(路徑key) 。只需要簡單的將隊列綁定到exchange 上。這樣發送到exchange的消息都會被轉發到與該交換機綁定的所有隊列上。類似子網廣播,每台子網內的主機都獲得了一份復制的消息。
所以,Fanout Exchange 轉發消息是最快的。
二. Direct Exchange(直系模式)
所有發送到Direct(滴軟可桃) Exchange的消息被轉發到RouteKey中指定的Queue。
Direct模式,可以使用rabbitMQ自帶的Exchange:default Exchange 。所以不需要將Exchange進行任何綁定(binding)操作 。消息傳遞時,RouteKey必須完全匹 配,才會被隊列接收,否則該消息會被拋棄。
三. Topic Exchange
所有發送到Topic(塔佩克)Exchange的消息被轉發到所有關心RouteKey中指定Topic的Queue上,
Exchange 將RouteKey 和某Topic 進行模糊匹配。此時隊列需要綁定一個Topic。可以使用通配符進行模糊匹配,符號“#”匹配一個或多個詞,符號“*”匹配一個詞。因此“log.#”能夠匹配到“log.info.oa”,但是“log.*” 只會匹配到“log.error”。