任何發(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)行綁定。多對多的關(guān)系。
4.如果接受到消息的Exchange沒有與任何Queue綁定,則消息會(huì)被拋棄。
RabbitMQ是一個(gè)消息代理:它接受并轉(zhuǎn)發(fā)消息。你可以把它當(dāng)成一個(gè)郵局:當(dāng)你想郵寄信件的時(shí)候,你會(huì)把信件放在投遞箱中,并確信郵遞員最終會(huì)將信件送到收件人的手里。在這個(gè)例子中,RabbitMQ就相當(dāng)與投遞箱、郵局和郵遞員。
AMQP協(xié)議中的核心思想就是生產(chǎn)者和消費(fèi)者隔離,生產(chǎn)者從不直接將消息發(fā)送給隊(duì)列。生產(chǎn)者通常不知道是否一個(gè)消息會(huì)被發(fā)送到隊(duì)列中,只是將消息發(fā)送到一個(gè)交換機(jī)。先由Exchange來接收,然后Exchange按照特定的策略轉(zhuǎn)發(fā)到Queue進(jìn)行存儲(chǔ)。同理,消費(fèi)者也是如此。Exchange 就類似于一個(gè)交換機(jī),轉(zhuǎn)發(fā)各個(gè)消息分發(fā)到相應(yīng)的隊(duì)列中。