項目需求剛剛遞交,新需求還沒來。閑下來了,寫寫博客放松下。
===========華麗的分割線=================
最近在學習Spring Cloud,其中消息總線Spring Cloud Bus是必不可少的,但是Spring Cloud Bus目前只支持RabbitMQ和kafka,因此學習RabbitMQ勢在必行,今天先從最基本的安裝開始。安裝之前我們先認識下RabbitMQ。
一、初識RabbitMQ
百度百科有這么一句話:
MQ是消費-生產者模型的一個典型的代表,一端往消息隊列中不斷寫入消息,
而另一端則可以讀取或者訂閱隊列中的消息。
MQ和JMS類似,但不同的是JMS是SUN JAVA消息中間件服務的一個標准和API定義,
而MQ則是遵循了AMQP協議的具體實現和產品。
他的官網中用大大的黑粗字體寫着:
RabbitMQ is the most widely deployed open source message broker.
由此可見,RabbitMQ是一個消息中間件,生產者生成消息,消費者消費消息,它遵循AMQP(高級消息隊列協議),是最廣泛部署的開源消息代理。
另外,RabbitMQ是用Erlang語言實現的,它有幾個概念:
broker:消息隊列服務器實體。
exchange:消息交換機,它指定消息按什么規則,路由到哪個隊列。
queue:消息隊列,每個消息都會被投入到一個或多個隊列。
binding:綁定,它的作用就是把exchange和queue按照路由規則綁定起來。
routing Key:路由關鍵字,exchange根據這個關鍵字進行消息投遞。
vhost:虛擬主機,一個broker里可以開設多個vhost,用作不同用戶的權限分離。
producer:消息生產者,就是投遞消息的程序。
consumer:消息消費者,就是接受消息的程序。
channel:消息通道,在客戶端的每個連接里,可建立多個channel,每個channel代表一個會話任務。
消息隊列的使用過程大概如下:
(1)客戶端連接到消息隊列服務器broker,打開一個channel。 (2)客戶端聲明一個exchange,並設置相關屬性。 (3)客戶端聲明一個queue,並設置相關屬性。 (4)客戶端使用routing key,在exchange和queue之間建立好綁定關系。 (5)客戶端投遞消息到exchange。 (6)exchange接收到消息后,就根據消息的key和已經設置的binding,進行消息路由,將消息投遞到一個或多個隊列里。
二、安裝RabbitMQ(以Windows為例)
由於RabbitMQ是用Erlang語言編寫的,因此需要先安裝Erlang。
- 通過http://www.erlang.org/downloads獲取對應安裝文件進行安裝
- 增加環境變量ERLANG_HOME=D:\Program Files\erl9.3(這里的目錄是我的安裝目錄,你要換成自己的目錄)
- 修改環境變量Path,在原來的值后面加上“;%ERLANG_HOME%\bin”
安裝完Erlang之后,我們就可以安裝RabbitMQ了。
- 到http://www.rabbitmq.com/install-windows-manual.html下載安裝包進行安裝
- 增加環境變量RABBITMQ_HOEM=D:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.5(這里的目錄是我的安裝目錄,你要換成自己的目錄)
- 修改環境變量Path,在原來的值后面加上“;%RABBITMQ_HOME%\sbin”
安裝好之后,RabbitMQ就作為一個服務按照默認方式進行啟動了
三、啟動管理頁面
我們可以通過Web進行管理RabbitMQ:
- 運行命令rabbitmq-plugins enable rabbitmq_management 開啟Web管理插件
- 通過瀏覽器訪問http://localhost:15672,並通過默認用戶guest進行登錄,密碼也是guest,登錄后的頁面:
頁面中有我們前面提到的基本概念,比如channels/exchanges/queues等,可以逐個點進去看下詳細情況。
如果要添加新用戶的話,點擊Admin選項卡,進行添加,詳細的不再敘述,相信大家一看就能懂。
就這樣,RabbitMQ安裝完畢。下一篇隨筆將介紹下怎么通過Spring Boot整合RabbitMQ。