參考https://www.cnblogs.com/sam-uncle/p/9050242.html
一卷员、初識RabbitMQ
百度百科有這么一句話:
MQ是消費-生產(chǎn)者模型的一個典型的代表,一端往消息隊列中不斷寫入消息雷酪,
而另一端則可以讀取或者訂閱隊列中的消息捂龄。
MQ和JMS類似释涛,但不同的是JMS是SUN JAVA消息中間件服務(wù)的一個標(biāo)準(zhǔn)和API定義,
而MQ則是遵循了AMQP協(xié)議的具體實現(xiàn)和產(chǎn)品倦沧。
他的官網(wǎng)中用大大的黑粗字體寫著:
RabbitMQisthe most widely deployed open source message broker.
由此可見唇撬,RabbitMQ是一個消息中間件,生產(chǎn)者生成消息刀脏,消費者消費消息局荚,它遵循AMQP(高級消息隊列協(xié)議),是最廣泛部署的開源消息代理愈污。
另外耀态,RabbitMQ是用Erlang語言實現(xiàn)的,它有幾個概念:
? ? broker:消息隊列服務(wù)器實體暂雹。
exchange:消息交換機首装,它指定消息按什么規(guī)則,路由到哪個隊列杭跪。
queue:消息隊列仙逻,每個消息都會被投入到一個或多個隊列。
binding:綁定涧尿,它的作用就是把exchange和queue按照路由規(guī)則綁定起來系奉。
routing Key:路由關(guān)鍵字,exchange根據(jù)這個關(guān)鍵字進行消息投遞姑廉。
vhost:虛擬主機缺亮,一個broker里可以開設(shè)多個vhost,用作不同用戶的權(quán)限分離桥言。
producer:消息生產(chǎn)者萌踱,就是投遞消息的程序。
consumer:消息消費者号阿,就是接受消息的程序并鸵。
channel:消息通道,在客戶端的每個連接里扔涧,可建立多個channel园担,每個channel代表一個會話任務(wù)。
消息隊列的使用過程大概如下:
(1)客戶端連接到消息隊列服務(wù)器broker,打開一個channel粉铐。
(2)客戶端聲明一個exchange疼约,并設(shè)置相關(guān)屬性。
(3)客戶端聲明一個queue蝙泼,并設(shè)置相關(guān)屬性程剥。
(4)客戶端使用routing key,在exchange和queue之間建立好綁定關(guān)系汤踏。
(5)客戶端投遞消息到exchange织鲸。
(6)exchange接收到消息后,就根據(jù)消息的key和已經(jīng)設(shè)置的binding溪胶,進行消息路由搂擦,將消息投遞到一個或多個隊列里。
二哗脖、安裝RabbitMQ(以Windows為例)
由于RabbitMQ是用Erlang語言編寫的瀑踢,因此需要先安裝Erlang。
通過http://www.erlang.org/downloads獲取對應(yīng)安裝文件進行安裝
增加環(huán)境變量ERLANG_HOME=D:\Program Files\erl9.3(這里的目錄是我的安裝目錄才避,你要換成自己的目錄)
修改環(huán)境變量Path橱夭,在原來的值后面加上“;%ERLANG_HOME%\bin”
安裝完Erlang之后,我們就可以安裝RabbitMQ了桑逝。
到http://www.rabbitmq.com/install-windows-manual.html下載安裝包進行安裝
增加環(huán)境變量RABBITMQ_HOEM=D:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.5(這里的目錄是我的安裝目錄棘劣,你要換成自己的目錄)
修改環(huán)境變量Path,在原來的值后面加上“;%RABBITMQ_HOME%\sbin”
安裝好之后楞遏,RabbitMQ就作為一個服務(wù)按照默認(rèn)方式進行啟動了
三茬暇、啟動管理頁面
?我們可以通過Web進行管理RabbitMQ:
運行命令rabbitmq-plugins enable rabbitmq_management 開啟Web管理插件
通過瀏覽器訪問http://localhost:15672,并通過默認(rèn)用戶guest進行登錄寡喝,密碼也是guest糙俗,登錄后的頁面:
頁面中有我們前面提到的基本概念,比如channels/exchanges/queues等预鬓,可以逐個點進去看下詳細(xì)情況臼节。
如果要添加新用戶的話,點擊Admin選項卡珊皿,進行添加,詳細(xì)的不再敘述巨税,相信大家一看就能懂蟋定。