消息交換模式RabbitMQ簡介
RabbitMQ是AMQP的一個(gè)典型實(shí)現(xiàn),它消息發(fā)布者的消息發(fā)布到Exchange上,同時(shí)需要制定routingkey,可以通過指定交換機(jī)的不同模式實(shí)現(xiàn)不同的行為。
RabbitMQ提供了四種Exchange:fanout,direct,topic和header。其中header模式在實(shí)際使用中較少,本文只對前三種模式進(jìn)行比較。
Direct模式(點(diǎn)對點(diǎn)通訊):
Direct Exchange是RabbitMQ默認(rèn)的交換機(jī)模式,也是最簡單的模式,根據(jù)key全文匹配去尋找隊(duì)列。規(guī)則如下:
發(fā)布到exchange的消息通過routingkey的完全匹配發(fā)布到queue上。如果routingkey不存在,則丟棄

點(diǎn)對點(diǎn)方式是最為傳統(tǒng)和常見的通訊方式,它支持一對一、一對多、多對多、多對一等多種配置方式,支持樹狀、網(wǎng)狀等多種拓?fù)浣Y(jié)構(gòu)。
fanout模式(多點(diǎn)廣播):
fanout模式比較簡單,廣播式的,無視r(shí)outingkey直接發(fā)送給所有的queue

Topic模式(發(fā)布/訂閱):

任何發(fā)送到Topic Exchange的消息都會被轉(zhuǎn)發(fā)到所有關(guān)心RouteKey中指定話題的Queue上
這種模式較為復(fù)雜,簡單來說,就是每個(gè)隊(duì)列都有其關(guān)心的主題,所有的消息都帶有一個(gè)"標(biāo)題"(RouteKey),Exchange會將消息轉(zhuǎn)發(fā)到所有關(guān)注主題能與RouteKey模糊匹配的隊(duì)列。
這種模式需要RouteKey,也許要提前綁定Exchange與Queue。
在進(jìn)行綁定時(shí),要提供一個(gè)該隊(duì)列關(guān)心的主題,如"#.log.#"表示該隊(duì)列關(guān)心所有涉及l(fā)og的消息(一個(gè)RouteKey為"MQ.log.error"的消息會被轉(zhuǎn)發(fā)到該隊(duì)列)。
"#"表示0個(gè)或若干個(gè)關(guān)鍵字,""表示一個(gè)關(guān)鍵字。如"log."能與"log.warn"匹配,無法與"log.warn.timeout"匹配;但是"log.#"能與上述兩者匹配。
同樣,如果Exchange沒有發(fā)現(xiàn)能夠與RouteKey匹配的Queue,則會拋棄此消息。
到此這篇關(guān)于消息交換模式RabbitMQ的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Windows下RabbitMQ安裝及配置詳解
- springboot?+rabbitmq+redis實(shí)現(xiàn)秒殺示例
- python對RabbitMQ的簡單入門使用教程
- SpringBoot+RabbitMQ?實(shí)現(xiàn)死信隊(duì)列的示例
- RabbitMQ的安裝和配置可視化界面的詳細(xì)步驟
- SpringBoot整合RabbitMQ實(shí)戰(zhàn)教程附死信交換機(jī)
- docker安裝RabbitMQ及安裝延遲插件的詳細(xì)過程
- springcloud安裝rabbitmq并配置延遲隊(duì)列插件的過程詳解
- 阿里云服務(wù)器部署RabbitMQ集群的詳細(xì)教程
相關(guān)文章
都2019年了,還問http中GET和POST的區(qū)別
最近看了一些同學(xué)的面經(jīng),發(fā)現(xiàn)無論什么技術(shù)崗位,還是會問到 get 和 post 的區(qū)別,而搜索出來的答案并不能讓我們裝得一手好逼,那就讓我們從 HTTP 報(bào)文的角度來擼一波,從而搞明白他們的區(qū)別2019-02-02
git工作區(qū)暫存區(qū)與版本庫基本理解及提交流程全解
這篇文章主要為大家介紹了git工作區(qū)暫存區(qū)與版本庫基本理解及提交流程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-04-04
詳解使用內(nèi)網(wǎng)穿透工具Ngrok代理本地服務(wù)
本文主要介紹了使用內(nèi)網(wǎng)穿透工具Ngrok代理本地服務(wù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03

