RabbitMQ基本概念和原理是什么?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
成都創(chuàng)新互聯公司主營彭澤網站建設的網絡公司,主營網站建設方案,成都app軟件開發(fā),彭澤h5重慶小程序開發(fā)搭建,彭澤網站營銷推廣歡迎彭澤等地區(qū)企業(yè)咨詢1.AMQP,即Advanced Message Queuing Protocol,高級消息隊列協(xié)議,是應用層協(xié)議的一個開放標準,為面向消息的中間件設計。
2.RabbitMQ是一個開源的AMQP實現,服務器端用Erlang語言編寫。
3.Channel
Channel是我們與RabbitMQ打交道的最重要的一個接口,我們大部分的業(yè)務操作是在Channel這個接口中完成的,包括定義Queue、定義Exchange、綁定Queue與Exchange、發(fā)布消息等。
4.Exchange(生產者將消息發(fā)送到Exchange(交換器),由Exchange將消息路由到一個或多個Queue中(或者丟棄),RabbitMQ常用的Exchange Type有fanout、direct、topic、headers這四種)
5.Queue(RabbitMQ的內部對象,用于存儲消息)
6.基本工作原理

客戶端(生產者) send Message -->Exchange (交換機通過不同的類型將消息保存到對應的queue)-->Queue
客戶端(消費者)通過訂閱來消費queue中的消息。
以上基礎概念整理來源于 RabbitMQ基礎概念詳細介紹
1. 下載安裝erlang (我用的是otp_win64_19.3版本)
下載地址 (根據操作系統(tǒng)選擇32還64位)
2. 下載安裝rabbitmq-server(我用的是rabbitmq-server-3.6.10版本)
下載地址
安裝好后,在看裝目錄下看到

接下來用啟用DOS命令
a. cd 到sbin目錄下,我的安裝目錄是D:\RabbitMQServer\rabbitmq_server-3.6.10\sbin, 輸入D: 回車,cd RabbitMQServer\rabbitmq_server-3.6.10\sbin

b. 查看安裝是否成功命令 :rabbitmqctl status

c.安裝管理插件命令:rabbitmq-plugins enable rabbitmq_management

安裝成功,在瀏覽器中輸入 http://127.0.0.1:15672/

輸入來賓賬號 guest 密碼 guest ,成功登陸進來,是不是有點小激動。

guest 賬號是管理員賬號,可以添加Exchanges,Queues,Admin。但我們一般不使用guest賬號,繼續(xù)用命令來添加賬號和權限。
d:添加用戶:rabbitmqctl.bat add_user username password

e:添加“超級管理員”角色: rabbitmqctl.bat set_user_tags username administrator


mymq賬號也是超級管理員了,Can access virtual hosts :No access ,可以看到還沒有能夠訪問的虛擬機,接下來添加虛擬機。
f: 添加虛擬機: rabbitmqctl add_vhost vhostName


myvhost虛擬機并沒有Users,接下來給虛擬機綁定賬號。
g:定虛擬機和用戶權限:rabbitmqctl set_permissions -p 虛擬機名稱 賬戶名 ".*" ".*" ".*"

h:處于習慣我一般刪除掉guest賬號:rabbitmqctl.bat delete_user username
好了,重新登陸管理頁面,一切正常,接下來開始實戰(zhàn)了。


EasyNetQ是依賴于RabbitMQ.Client的,所以會被一并安裝到項目中。

Model有個Queue的特性,定義Queue名稱和Exchange名稱。然后直接用Publish方法把Msg通過Model指定的交換機推送到指定隊列去。
運行代碼,看看MQ的管理頁面。

已經創(chuàng)建了Model指定的交換機TestQueue.Exchange, Type:topic , Features:D 。D:Durable 說明默認創(chuàng)建的交換機是持久化的。
因為還沒有訂閱消息,所以在Queues中還看不到對應的隊列。

為什么要在訂閱代碼上套一個while(true)了? 是為了把控制臺程序模擬成Windows服務,因為控制臺程序運行一閃而過,沒辦法真正訂閱到MQ的消息。
實際開發(fā)中,一般用Topself來把控制臺程序發(fā)布成Windows服務,后面有時間再寫一篇關于Topself的學習博客。
再重復剛才的Publish操作,測試下整個流程。


這樣消息會被發(fā)送到名稱為Test.開頭的所有Queue隊列中。
通過send和receive可以將消息發(fā)送到指定隊列。



看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯成都網站設計公司行業(yè)資訊頻道,感謝您對創(chuàng)新互聯成都網站設計公司的支持。
另外有需要云服務器可以了解下創(chuàng)新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、網站設計器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
分享文章:RabbitMQ基本概念和原理是什么-創(chuàng)新互聯
鏈接地址:http://chinadenli.net/article46/cdoohg.html
成都網站建設公司_創(chuàng)新互聯,為您提供微信小程序、定制開發(fā)、網站制作、企業(yè)網站制作、網站導航、網站策劃
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯