這篇文章主要講解了“rabbitmq概念是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“rabbitmq概念是什么”吧!
公司主營業(yè)務(wù):成都做網(wǎng)站、成都網(wǎng)站設(shè)計、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出鎮(zhèn)沅免費(fèi)做網(wǎng)站回饋大家。
首先,裝好RMQ,且激活了Web管理服務(wù)之后(需要先暫停服務(wù),然后重啟,看帖子),就可以通過http://localhost:15672來訪問了(用戶名/密碼是:guest/guest,這個雖然叫g(shù)uest但是確實超級管理員權(quán)限)。
這個網(wǎng)頁其實很有意思,到目前為止,我覺得非常有用的內(nèi)容是,他里面可以看到你聲明的Queue,Exchange,RoutingKey(這個要點擊某個Exchange才能看到)??吹竭@些有什么用呢?最重要的一點就是,他們是真實存在的!而且存在于RMQ服務(wù)器上!不存在于Producer,也不存在于Consumer。換句話說,他們不會隨著你的程序的消亡而消亡?。ó?dāng)然你程序讓他們死,他們當(dāng)然會死,我指的是一般情況。)好,在展開一下,假如你的程序里面聲明了一個不會自動消亡的Queue和一個Exchange,那么第一次運(yùn)行,這2個對象就被創(chuàng)建出來了,那么他們就永遠(yuǎn)存在,第二次運(yùn)行,你就不必再聲明了。這就是為什么,RabbitMQ.Client里面某些參數(shù)都是字符串,而不是一般類庫的對象實例。
那個作者其實沒有明確交代清楚幾個基本的概念:
1. Consumer是直接從Queue里面取消息的,不用經(jīng)過Exchange。這點要牢記,而且從所有取消息的API,只接受Queue的名字,就可以印證。
2. Producer要發(fā)送消息,是不能直接往Queue里面發(fā)的,必須經(jīng)過Exchange,而且發(fā)消息一定要指定RoutingKey。這個也可以從發(fā)消息的API得到印證。
3. Exchange和Queue(可以一對多)彼此是通過RoutingKey這條“紐帶”來綁定的!Exchange、RoutingKey、Queue這三者關(guān)系緊密。這個也要牢記!發(fā)消息的時候,需要指定的是Exchange和RoutingKey,無法指定Queue。這個很Make Sense吧!有點像MVC的關(guān)系(Producer是Model,將消息(with RoutingKey)傳給Exchange,Exchange是Controller來派發(fā)消息到指定的Queue(s))。
4. Exchange有4種類型:Direct、Fanout、Topic、Headers。這個看后面4張圖就基本可以了解。
5. RMQ提供了一個默認(rèn)的Exchange,名字是空字符串。他是Direct類型的,綁定到所有的Queue(而且每一個Queue和這個無名Exchange之間的RoutingKey是Queue的名字)。那個作者是這樣說的:每當(dāng)你聲明了一個Queue,就會有一個默認(rèn)的Exchange。我也不知道他說的對不對,反正就有那么一個默認(rèn)的Exchange就對了。這個不用你顯式聲明(就存在)就對了。
這里貼一下PEQC關(guān)系圖:
這里貼一下Exchange4種類型:Direct、Fanout、Topic、Headers。
1. 在創(chuàng)建ConnectFactory時,我們可以傳入主機(jī)名、端口號、用戶名/密碼、虛擬Host等參數(shù)。
2. 也可以使用ampq://用戶名:密碼@主機(jī)名:端口號/%2f
3. Channel是輕量級的TCP/IP連接, 而Connection是非常Expensive的。
4. 消息不是直接發(fā)到Queue的,而是Producer通過Exchange來發(fā)送的。
5. 每當(dāng)聲明一個Queue時,會自動綁定到默認(rèn)的Exchange上。而且不能解綁、不能刪除、不能顯式聲明,只能用來發(fā)消息。
感謝各位的閱讀,以上就是“rabbitmq概念是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對rabbitmq概念是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!