RabbitMQ搭建(2)-Java簡(jiǎn)單實(shí)現(xiàn)

一奢赂、pom引入包


<dependency>

? ? ? ? ? ? <groupId>com.rabbitmq</groupId>

? ? ? ? ? ? <artifactId>amqp-client</artifactId>

? ? ? ? ? ? <version>3.6.5</version>

</dependency>


二、創(chuàng)建消息發(fā)送者


import java.io.IOException;

import java.util.concurrent.TimeoutException;

import com.rabbitmq.client.Channel;

import com.rabbitmq.client.Connection;

import com.rabbitmq.client.ConnectionFactory;

/**

* 消息生成者

*/

public class Producer {

????public final static String QUEUE_NAME = "rabbitMQ.test";

????public static void main(String[] args) throws IOException, TimeoutException {

????????// 創(chuàng)建連接工廠

????????ConnectionFactory factory = new ConnectionFactory();

????????// 設(shè)置RabbitMQ相關(guān)信息

????????factory.setHost("localhost");

????????// factory.setUsername("guest");

????????// factory.setPassword("guest");

????????// factory.setPort(5672);

????????// 創(chuàng)建一個(gè)新的連接

????????Connection connection = factory.newConnection();

????????// 創(chuàng)建一個(gè)通道

????????Channel channel = connection.createChannel();

????????// 聲明一個(gè)隊(duì)列

????????// 1.String queue表示隊(duì)列名稱

????????// 2.boolean durable是否持久化

????????// 3.exclusive是否是獨(dú)占隊(duì)列(創(chuàng)建者可以使用的私有隊(duì)列觅彰,斷開(kāi)后自動(dòng)刪除)

????????// 4.boolean autoDelete當(dāng)所有消費(fèi)者客戶端連接斷開(kāi)時(shí)是否自動(dòng)刪除隊(duì)列

????????// 5.Map<String, Object> arguments隊(duì)列的其他參數(shù)

????????channel.queueDeclare(QUEUE_NAME, false, false, false, null);

????????String message = "Hello RabbitMQ";

????????// 發(fā)送消息到隊(duì)列中

????????// 1.String exchange交換機(jī)名稱

????????// 2.String routingKey隊(duì)列映射的路由key

????????// 3.BasicProperties props消息的其他屬性

????????// 4.byte[] body發(fā)送信息的主體

????????channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8"));

????????System.out.println("Producer Send +'" + message + "'");

????????// 關(guān)閉通道和連接

????????channel.close();

????????connection.close();

????}

}


三、創(chuàng)建消息接收者


import java.io.IOException;

import java.util.concurrent.TimeoutException;

import com.rabbitmq.client.AMQP;

import com.rabbitmq.client.Channel;

import com.rabbitmq.client.Connection;

import com.rabbitmq.client.ConnectionFactory;

import com.rabbitmq.client.Consumer;

import com.rabbitmq.client.DefaultConsumer;

import com.rabbitmq.client.Envelope;

/**

* 消息接收者

*/

public class Customer {

private final static String QUEUE_NAME = "rabbitMQ.test";

public static void main(String[] args) throws IOException, TimeoutException {

????????// 創(chuàng)建連接工廠

????????ConnectionFactory factory = new ConnectionFactory();

????????// 設(shè)置RabbitMQ地址

????????factory.setHost("localhost");

????????// 創(chuàng)建一個(gè)新的連接

????????Connection connection = factory.newConnection();

????????// 創(chuàng)建一個(gè)通道

????????Channel channel = connection.createChannel();

????????// 聲明要關(guān)注的隊(duì)列

????????// channel.queueDeclare(QUEUE_NAME, false, false, true, null);

????????System.out.println("Customer Waiting Received messages");

????????// DefaultConsumer類實(shí)現(xiàn)了Consumer接口,通過(guò)傳入一個(gè)頻道,

????????// 告訴服務(wù)器我們需要那個(gè)頻道的消息六剥,如果頻道中有消息,就會(huì)執(zhí)行回調(diào)函數(shù)handleDelivery

????????Consumer consumer = new DefaultConsumer(channel) {

????????@Override

????????public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties,

????????????byte[] body) throws IOException {

????????????????String message = new String(body, "UTF-8");

????????????????System.out.println("Customer Received '" + message + "'");

????????????}

????????};

????????// 自動(dòng)回復(fù)隊(duì)列應(yīng)答 -- RabbitMQ中的消息確認(rèn)機(jī)制

????????channel.basicConsume(QUEUE_NAME, true, consumer);

????}

}


四峰伙、測(cè)試

? ? 1.運(yùn)行Customer消息接收者開(kāi)啟服務(wù)

? ? 2.運(yùn)行Producer消息發(fā)送者

? ? 3.可以看到Customer打印出Customer Received 'Hello RabbitMQ'

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市该默,隨后出現(xiàn)的幾起案子瞳氓,更是在濱河造成了極大的恐慌,老刑警劉巖栓袖,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件匣摘,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡裹刮,警方通過(guò)查閱死者的電腦和手機(jī)音榜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)捧弃,“玉大人赠叼,你說(shuō)我怎么就攤上這事擦囊。” “怎么了嘴办?”我有些...
    開(kāi)封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵瞬场,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我涧郊,道長(zhǎng)贯被,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任妆艘,我火速辦了婚禮彤灶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘批旺。我一直安慰自己幌陕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布朱沃。 她就那樣靜靜地躺著苞轿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪逗物。 梳的紋絲不亂的頭發(fā)上搬卒,一...
    開(kāi)封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音翎卓,去河邊找鬼契邀。 笑死,一個(gè)胖子當(dāng)著我的面吹牛失暴,可吹牛的內(nèi)容都是我干的坯门。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼逗扒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼古戴!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起矩肩,我...
    開(kāi)封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤现恼,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后黍檩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叉袍,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年刽酱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了喳逛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡棵里,死狀恐怖润文,靈堂內(nèi)的尸體忽然破棺而出姐呐,到底是詐尸還是另有隱情,我是刑警寧澤转唉,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布皮钠,位于F島的核電站,受9級(jí)特大地震影響赠法,放射性物質(zhì)發(fā)生泄漏麦轰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一砖织、第九天 我趴在偏房一處隱蔽的房頂上張望缰泡。 院中可真熱鬧菇存,春花似錦栅干、人聲如沸碍讨。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)妹笆。三九已至,卻和暖如春娜氏,著一層夾襖步出監(jiān)牢的瞬間拳缠,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工贸弥, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留窟坐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓绵疲,卻偏偏與公主長(zhǎng)得像哲鸳,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子盔憨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容