一铜幽、Exchange交換機(jī)
1.Exchange:接受消息滞谢,并根據(jù)路由鍵轉(zhuǎn)發(fā)消息到所綁定的隊(duì)列
2.屬性
Name:交換機(jī)名稱
Type:交換機(jī)類型 direct、topic除抛、fanout狮杨、headers
Durability:是否需要持久化
Auto Delete:當(dāng)最后一個(gè)綁定到Exchange上的隊(duì)列刪除后,自動(dòng)刪除該Exchange
Internal:當(dāng)前Exchange是否術(shù)語(yǔ)RabbitMQ內(nèi)部使用到忽,默認(rèn)false
Arguments:擴(kuò)展參數(shù)橄教,用于擴(kuò)展AMPQP協(xié)議制訂化使用
二、Default Exchange
Default Exchange 是由代理預(yù)先聲明的無(wú)名稱(空字符串)的直接交換喘漏。它有一個(gè)特殊的屬性护蝶,使得它對(duì)于簡(jiǎn)單的應(yīng)用程序非常有用:每一個(gè)創(chuàng)建的隊(duì)列都自動(dòng)綁定到路由鍵(Routing Key)為隊(duì)列名稱(Queue Name)的交換機(jī)。
三翩迈、Direct Exchange
1.所有發(fā)送到Direct Exchange的消息被轉(zhuǎn)發(fā)到RouteKey中指定的Queue持灰。
注意:Direct模式可以使用RabbitMQ自帶的Exchange:default Exchange,所以不需要將Exchange進(jìn)行任何綁定操作负饲,消息傳遞時(shí)堤魁,RouteKey必須完全匹配才會(huì)被隊(duì)列接收,否則該消息會(huì)被拋棄返十。
四姨涡、Topic Exchange
Topic Exchange基于消息路由鍵(Routing Key)和用于將隊(duì)列綁定到交換機(jī)的模式之間的匹配,將消息路由到一個(gè)或多個(gè)隊(duì)列吧慢。Topic Exchange通常用于實(shí)現(xiàn)各種發(fā)布/訂閱模式變化。Topic Exchange通常用于消息的多播路由赏表。
每當(dāng)問(wèn)題涉及多個(gè)消費(fèi)者/應(yīng)用程序检诗,它們有選擇地選擇它們想要接收哪種類型的消息時(shí),應(yīng)該考慮使用Topic Exchange瓢剿。
五逢慌、Fanout Exchange
Fanout Exchange將消息路由到綁定到它的所有隊(duì)列,并且忽略路由鍵(Routing Key) 间狂。如果N個(gè)隊(duì)列綁定到Fanout Exchange攻泼,則當(dāng)向該交換機(jī)發(fā)布新消息時(shí),將向所有N個(gè)隊(duì)列傳遞消息的副本鉴象。Fanout Exchange是廣播消息路由的理想選擇忙菠。
Fanout Exchange向每個(gè)綁定到它的隊(duì)列傳遞消息副本,適用場(chǎng)景如下:
1.大型多人在線(MMO)游戲可用于排行榜更新或其他全球性事件纺弊。
2.體育新聞網(wǎng)站可以使用Fanout Exchange來(lái)實(shí)時(shí)更新移動(dòng)客戶端的評(píng)分更新牛欢。
3.分布式系統(tǒng)可以廣播各種狀態(tài)和配置更新