简单的使用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内,盒子会一个挨着一个的排,相邻盒子 ...
随机推荐
- CODEVS 1174 靶形数独
题目描述 Description 小城和小华都是热爱数学的好学生,最近,他们不约而同地 迷上了数独游戏,好胜的他们想用数独来一比高低.但普通 的数独对他们来说都过于简单了,于是他们向Z 博士请教,Z ...
- bzoj 1898 [Zjoi2005]Swamp 沼泽鳄鱼——矩阵快速幂
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1898 当然是邻接矩阵做转移矩阵来快速幂. 对于鳄鱼,好在它们周期的lcm是12,也就是每12 ...
- Zabbix通过SNMPv2监控DELL服务器的硬件信息
(一)zabbix监控DELL服务器 (1)简述:监控DELL服务器硬件一般有两种途径:1.操作系统上安装OMSA,编写脚本调用omreport命令进行监控(需要在操作系统上安装比较麻烦):2.使用i ...
- Hot resize Multipath Disk – Linux
This post is for the users of the great dm-multipath system in Linux, who encounter a major availabi ...
- Day2-Python基础2---列表、元组操作
一.列表 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 names = ["maqing"," peilin" ...
- java代码实现通讯录实例,我不知道这有什么用。,
运行显示: Friend:zl,Address:武大樱花美Colleagues:蔡依林,Department:麻城市人民政府 题目: 1.任务描述 完善上面通讯录名片的例子. 2.技能要点 掌握类继承 ...
- cassandra安装配置
准备运行环境1.1 cassandra可以安装在windows和linux下,本例子安装在centos6.7的环境下.1.2 关闭防火墙.或者开放9042(默认的CQL本地服务端口).9160(默认的 ...
- python (面向对象相关的三个模块)
hashlib,configparser,logging模块 一.常用模块二 hashlib模块 hashlib提供了常见的摘要算法,如md5和sha1等等. 那么什么是摘要算法呢?摘要算法又称为哈希 ...
- SqlServer——判断对象是否存在
对以下对象判断是否存在:database.table.proc.触发器.临时表.索引.对于这些对象的判断是通过数据表 SysObjects来获得的. 一.基础知识 1.SysObjects系统表 对于 ...
- 一个hitbernate配置文件,带几个表(注意mapping);如果连接字符串没有设置utf-8,向insert mysql 会产生乱码(utf8 或 utf-8)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuratio ...