消息隊(duì)列——RabbitMQ

1. 寫在前面

昨天簡(jiǎn)單學(xué)習(xí)了一個(gè)消息隊(duì)列項(xiàng)目——RabbitMQ,今天趁熱打鐵,將學(xué)到的東西記錄下來。

學(xué)習(xí)的資料主要是官網(wǎng)給出的6個(gè)基本的消息發(fā)送/接收模型,或者稱為6種不同的使用場(chǎng)景,本文便是對(duì)這6種模型加以敘述。

2. Tutorials

在學(xué)習(xí)6種模型之前,我們首先需要安裝RabbitMQ。RabbitMQ支持多種系統(tǒng)平臺(tái),各平臺(tái)的安裝方法可以點(diǎn)此查看。安裝好之后,我們使用如下命令啟用Web端的管理插件:rabbitmq-plugins enable rabbitmq_management,然后啟動(dòng)RabbitMQ。接著用瀏覽器訪問http://localhost:15672/,若能看到RabbitMQ相關(guān)Web頁面,說明啟動(dòng)成功。

2.1 Hello World

正所謂萬事開頭難,我們先從最簡(jiǎn)單的Hello World開始。首先當(dāng)然是新建一個(gè)項(xiàng)目,導(dǎo)入RabiitMQ相關(guān)jar。我采用Maven來構(gòu)建項(xiàng)目,因此只需要在pom文件中添加如下依賴:

<dependency>
    <groupId>com.rabbitmq</groupId>
    <artifactId>amqp-client</artifactId>
    <version>3.6.5</version>
</dependency>

接下來學(xué)習(xí)最簡(jiǎn)單的消息隊(duì)列模型,如下圖:

在圖中,P代表producer,它是消息的生產(chǎn)者;C代表consumer,它是消息的消費(fèi)者;而紅色的矩形正是我們所謂的消息隊(duì)列,它位于RabbitMQ中(RabbitMQ中可以有很多這樣的隊(duì)列,并且每個(gè)隊(duì)列都有一個(gè)唯一的名字)。生產(chǎn)者(們)可以將消息發(fā)送到消息隊(duì)列中,消費(fèi)者(們)可以從消息隊(duì)列中取出消息。

這種模型是不是很簡(jiǎn)單呢?下面我們使用Java,借助于RabbitMQ來實(shí)現(xiàn)這種模型的消息通信。

首先我們介紹如何send消息到消息隊(duì)列。send之前,當(dāng)然是和RabbitMQ服務(wù)器建立連接: