RabbitMQ你了解嗎?
你是否遇到過兩個(gè)(多個(gè))系統(tǒng)間需要通過定時(shí)任務(wù)來同步某些數(shù)據(jù)?你是否在為異構(gòu)系統(tǒng)的不同進(jìn)程間相互調(diào)用、通訊的問題而苦惱、掙扎?如果是,那么恭喜你,消息服務(wù)讓你可以很輕松地解決這些問題。

消息服務(wù)擅長于解決多系統(tǒng)、異構(gòu)系統(tǒng)間的數(shù)據(jù)交換(消息通知/通訊)問題,你也可以把它用于系統(tǒng)間服務(wù)的相互調(diào)用(RPC)。本文將要介紹的RabbitMQ就是當(dāng)前最主流的消息中間件之一。
一、RabbitMQ是什么?
RabbitMQ是實(shí)現(xiàn)了高級消息隊(duì)列協(xié)議(AMQP)的開源消息代理軟件(亦稱面向消息的中間件)。RabbitMQ服務(wù)器是用Erlang語言編寫的,而集群和故障轉(zhuǎn)移是構(gòu)建在開放電信平臺框架上的。所有主要的編程語言均有與代理接口通訊的客戶端庫。
二、RabbitMQ能干什么?
簡單的說一下RabbitMQ的使用場景,RabbitMQ就一個(gè)輕量級的消息隊(duì)列中間件,一般都這么叫它。最直接的就是用這個(gè)東西可以把程序解耦。
舉個(gè)例子最常使用的發(fā)布文章,以前一般發(fā)布一篇文章就是直接提交給程序,然后直接寫入到數(shù)據(jù)庫,但是用這個(gè)消息隊(duì)列就可以把這篇文章推入RabbitMQ倉庫中(當(dāng)然這里你可以把RabbitMQ理解成數(shù)據(jù)庫也可以),然后訂閱者從倉庫中把隊(duì)列里的消息取走,也有點(diǎn)像是中轉(zhuǎn)站,一般用它來解決高并發(fā)。

RabbitMQ其實(shí)就是消息隊(duì)列。是軟件開發(fā)中經(jīng)常用到的通信方法。像IBM WEBSPHERE MQ等等做的都很成熟,今天就說說MQ在java中使用方法。


1、打開eclipse開發(fā)工具,點(diǎn)擊導(dǎo)航欄上的【File】菜單,然后在點(diǎn)擊New,新建個(gè)Maven Project,在新建的項(xiàng)目里演示RabbitMQ在java中的使用。如下圖所示。

2、項(xiàng)目新建完成后,會自動生成個(gè)pom文件,打開pom文件,添加上RabbitMQ的依賴包,如下圖所示。
<dependency>
? ?<groupId>com.rabbitmq</groupId>
? ?<artifactId>amqp-client</artifactId>
? ?<version>3.0.4</version>
</dependency>

3、RabbitMQ消息隊(duì)列就是應(yīng)用在通信里,這里我們就用java模擬生產(chǎn),消費(fèi)二者的通信。新建個(gè)Consumer類,作為消費(fèi)類,具體代碼,如下圖所示。

4、接著在新建個(gè)生產(chǎn)者Producer類,代碼類似Consumer類,具體請看我的截圖,如下圖所示。

5、消費(fèi)和生產(chǎn)類都實(shí)現(xiàn)好后,我們先運(yùn)行消費(fèi)者類,選中Consumer后,右鍵鼠標(biāo),然后點(diǎn)擊【Run As】--->【Run on server】,如下圖所示。


6、消費(fèi)類運(yùn)行后,在選中生產(chǎn)Producer類,右鍵鼠標(biāo),然后點(diǎn)擊【Run As】--->【Run on server】,如下圖所示。

7、運(yùn)行后,可以在eclipse的Console控制臺那里看到MQ的通信,我們可以看到先運(yùn)行的消費(fèi)類,但是并沒有執(zhí)行而是等待,因?yàn)闆]有生產(chǎn),是不可能消費(fèi)的,得到的結(jié)果是正確的,如下圖所示。

想要學(xué)習(xí)更多的RabbitMQ知識可以觀看視頻教程哦~

RabbitMQ你了解嗎?的評論 (共 條)
