简单的使用rabbitmq的例子
1.创建了两个项目 :
(1).spring_cloud_rabbitmq_send 消息发送者
(2).spring_cloud_rabbitmq_receive 消息接受者
2. 添加rabbitmq依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
3.编写具体的消息发送者
(1)配置application.yml
spring:
application:
name: rabbitmq-send
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
#不分配端口,默认使用8080
(2)创建rabbitmq配置类,添加一个名为hello的队列
/**
* @author liuboren
* @Title:Rabbit配置类
* @Description:
* @date 2018/6/27 14:57
*/
@Configuration
public class RabbitConfig {
public final static String QUEUE_NAME = "hello"; @Bean
public Queue helloQueue(){
return new Queue(QUEUE_NAME);
} }
(3)编写具体的发送组件
/**
* @author liuboren
* @Title:消息发送者
* @Description:
* @date 2018/6/27 14:40
*/
@Component
public class Sender { //通过注入的这个类来传递消息
@Autowired
private AmqpTemplate rabbitTemplate; public void send(){
String context = "hello"+ new Date();
System.out.println("Sender :"+ context); //hello为创建的队列名,context为发送的消息
this.rabbitTemplate.convertAndSend("hello",context);
} }
(4)创建一个访问接口,用以发送消息
/**
* @author liuboren
* @Title:发送消息的接口
* @Description:
* @date 2018/6/27 15:36
*/
@RestController
public class SendController { @Resource
private Sender sender; @GetMapping("send")
public String send(){
sender.send();
return "消息已发送..";
}
}
4. 编写具体的消息接受者
(1)application.yml
spring:
application:
name: rabbitmq-receive
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
server:
port: 8081
(2)编写消息接受者组件
/**
* @author liuboren
* @Title:消息接受者
* @Description:
* @date 2018/6/27 14:54
*/
@Component
//监听hello队列
@RabbitListener(queues = "hello")
public class Receive { //处理接受到的消息
@RabbitHandler
public void process(String hello){
System.out.println("Receiver:"+hello);
}
}
5. 测试
(1)启动消息发送者,多次访问http://localhost:8080/send

控制台输出:

注意这时候我们还没有启动消息接受者,所有发送的消息都在消息队列里面
可以访问 http://localhost:15672/ 查看rabbitmq的管理页面
我们可以看到消息队列里面有21条消息

(2)我们启动消息接受者应用
可以看到应用启动好以后,接收到了消息

我们再次访问http://localhost:15672

发现队列此时已经没有消息.
这样一个简单的RabbitMQ应用就完成了.
Github地址:https://github.com/liuboren0617/rabbit_demo
简单的使用rabbitmq的例子的更多相关文章
- 【Spring】简单的Spring MVC入门例子
前言 测试特性需要搭建一个简单的Spring MVC的例子,遂记录之,只是例子,只为入门者之示例. 版本说明 声明POM文件,指定需引入的JAR. <properties> <spr ...
- rabbitMQ第二篇:java简单的实现RabbitMQ
前言:在这里我将用java来简单的实现rabbitMQ.下面我们带着下面问题来一步步的了解和学习rabbitMQ. 1:如果消费者连接中断,这期间我们应该怎么办 2:如何做到负载均衡 3:如何有效的将 ...
- 最简单的基于libVLC的例子:最简单的基于libVLC的推流器
===================================================== 最简单的基于libVLC的例子文章列表: 最简单的基于libVLC的例子:最简单的基于lib ...
- 最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器(图形界面版)
===================================================== 最简单的基于libVLC的例子文章列表: 最简单的基于libVLC的例子:最简单的基于lib ...
- 一个简单的Object Hook的例子(win7 32bit)
Object Hook简单的来说就是Hook对象,这里拿看雪上的一个例子,因为是在win7 32位上的,有些地方做了些修改. _OBJECT_HEADER: kd> dt _OBJECT_HEA ...
- 一个简单的Spring测试的例子
在做测试的时候我们用到Junit Case,当我们的项目中使用了Sring的时候,我们应该怎么使用spring容器去管理我的测试用例呢?现在我们用一个简单的例子来展示这个过程. 1 首先我们新建一个普 ...
- 2、Lucene 最简单的使用(小例子)
在了解了Lucene以后,我打算亲手来做一个Lucene的小例子,这个例子只是Lucene最简单的应用:使用Lucene实现标准的英文搜索: 1.下载Lucene 下载Lucene,到Lucene的官 ...
- pywinauto简单操作写字板的例子
前段时间写了做web程序界面自动化的简单例子,今天写一下windows gui程序界面自动化测例子吧. ps.咱中国人YinKaisheng封装的UIAutomation库也很好用,https://g ...
- CSS布局中一个简单的应用BFC的例子
什么是BFC BFC(Block Formatting Context),简单讲,它是提供了一个独立布局的环境,每个BFC都遵守同一套布局规则.例如,在同一个BFC内,盒子会一个挨着一个的排,相邻盒子 ...
随机推荐
- P1230 智力大冲浪(洛谷)
题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元.先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则: ...
- 学习动态性能表(13)--v$open_cursor
学习动态性能表 第13篇--V$OPEN_CURSOR 2007.6.8 本视图列出session打开的所有cursors,很多时候都将被用到,比如:你可以通过它查看各个session打开的curs ...
- Angular5学习笔记 - 创建服务(九)
一.创建服务 ng generate service service-name #简写 ng g s component-name ng g s services/userService 二.效果 三 ...
- (转)C#用Linq实现DataTable的Group by数据统计
本文转载自:http://www.cnblogs.com/sydeveloper/archive/2013/03/29/2988669.html 1.用两层循环计算,前提条件是数据已经按分组的列排好序 ...
- json例子--bai
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- vmware全屏后去掉上面的横杠
全屏后选择查看—>独占模式最上面的杠就没了,而且不按退出快捷键,不会在切换到外面的系统中了.
- BIOS简单设置 解析“集成显卡”内存占用问题
很多使用集成显卡的用户会发现,在系统信息窗口中,内存容量和实际不一样.比如系统内存显示4GB,可用3.48G之类.这不可用的一部分内存到哪去了? 其实减少的这部分内存是被集成显卡占用当做显存使用了.而 ...
- python中引号中有双引号
#/usr/bin/python import os name = "ABC" #ABC是具体的模块名,产品经理每一次给的模块名字都不一样 os.environ['name'] = ...
- ie6 ie7下报脚本错误"Expected identifier, string or number" 的原因和解决方法
在IE6和ie7里面,脚本报错"Expected identifier, string or number" 写下这个是个之前我已经很头疼了,因为我的代码在其他浏览器里都是正常的, ...
- 部署和调优 2.4 tomcat安装
下载tamcet 官网 http://tomcat.apache.org/ 左侧选择版本 复制下载链接 切换到下载目录 cd /usr/local/src linux wget wget http:/ ...