直接模式(Direct)
我們需要將消息發(fā)給唯一一個(gè)節(jié)點(diǎn)時(shí)使用這種模式,這是最簡(jiǎn)單的一種形式。
任何發(fā)送到Direct Exchange的消息都會(huì)被轉(zhuǎn)發(fā)到RouteKey中指定Queue。
1.一般情況可以使用rabbitMQ自帶的Exchange:”"(該Exchange的名字為空字符串,下文稱其為default Exchange)。
2.這種模式下不需要將Exchange進(jìn)行任何綁定(binding)操作
3.消息傳遞時(shí)需要一個(gè)“RouteKey”,可以簡(jiǎn)單的理解為要發(fā)送到的隊(duì)列名字。
4.如果vhost中不存在RouteKey中指定的隊(duì)列名,則該消息會(huì)被拋棄。
Durability:是否做持久化 Durable(持久) transient(臨時(shí))
Auto?delete : 是否自動(dòng)刪除
分列(Fanout)模式
當(dāng)我們需要將消息一次發(fā)給多個(gè)隊(duì)列時(shí),需要使用這種模式
任何發(fā)送到Fanout Exchange的消息都會(huì)被轉(zhuǎn)發(fā)到與該Exchange綁定(Binding)的所有 Queue上。
1.可以理解為路由表的模式
2.這種模式不需要RouteKey
3.這種模式需要提前將Exchange與Queue進(jìn)行綁定,一個(gè)Exchange可以綁定多個(gè) Queue,一個(gè)Queue可以同多個(gè)Exchange進(jìn)行綁定。
如果接受到消息的Exchange沒有與任何Queue綁定,則消息會(huì)被拋棄
主題模式(Topic)
任何發(fā)送到Topic Exchange的消息都會(huì)被轉(zhuǎn)發(fā)到所有關(guān)心RouteKey中指定話題的Queue 上
#代表匹配任意字符
*代表一個(gè)字符