spring boot 中 rabbit mq基础例子
1、先安装ELANG,再按照RabbitMQ
2、打开RabbitMQ控制台:rabbit command prompt
1、设置elang的路径:set ERLANG_HOME=D:\work_program_file\rabbitmq\elang\erl9.1
设置elang根目录,重要,否则一直提示找不到elang。
2、在控制台输入:rabbitmqctl start_app等待启动,出现:Starting node rabbit@...等字样表示启动成功了,这里示例:Starting node rabbit@MS-20170624IVFG
3、安装管理器:rabbitmq-plugins enable rabbitmq_management,用来访问web管理页面:如下示例

如果安装成功,控制台如下提示:
  Enabling plugins on node rabbit@MS-
  rabbitmq_management
  The following plugins have been con
    rabbitmq_management
    rabbitmq_management_agent
    rabbitmq_web_dispatch
  Applying plugin configuration to ra
  The following plugins have been ena
    rabbitmq_management
    rabbitmq_management_agent
    rabbitmq_web_dispatch
started 3 plugins.
4、通过地址访问web管理控制台,默认端口15672,http://localhost:15672/
5、登录账户通过在控制台创建
创建管理员用户,负责整个MQ的运维
rabbitmqctl add_user kyoxue kyoxue
赋予administrator角色
rabbitmqctl set_user_tags kyoxue administrator
创建RabbitMQ监控用户,负责整个MQ的监控
rabbitmqctl add_user  kyoxue1 kyoxue1
赋予monitoring角色:
rabbitmqctl set_user_tags kyoxue1 monitoring
创建某个项目的专用用户,只能访问项目自己的virtual hosts
rabbitmqctl  add_user  user_proj  passwd_proj
赋予其management角色:
rabbitmqctl set_user_tags user_proj management
查看用户
rabbitmqctl list_users
使用户kyoxue具有/这个virtual host中所有资源的配置、写、读权限以便管理其中的资源
rabbitmqctl  set_permissions -p /  kyoxue '.*' '.*' '.*'
PS:这里设置了权限,在添加队列时可能会提示:Access refused. 表示账户权限设置有问题,去页面控制台:Admin\ kyoxue(用户)\Set permission下面点Set permission按钮重新设置下。
6、停止RabbitMQ:rabbitmqctl stop
7、在Virtual Host:(\)下添加一个测试队列test,如下图:

8、接下来,可以通过连接信息进行发布,订阅了
在springboot配置文件添加:
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=kyoxue
spring.rabbitmq.password=kyoxue
spring.rabbitmq.virtual-host=/
9、引入rabbit mq依赖
这里用的springboot 1.4.3.RELEASE版本
<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter-amqp</artifactId>
				<version>${spring-boot.version}</version>
				<scope>provided</scope>
			</dependency>
10、生成一个队列bean单例,队列名称刚才配置的test
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; @Configuration
public class RabbitConfig { @Bean
public org.springframework.amqp.core.Queue Queue() {
return new org.springframework.amqp.core.Queue("test");
}
}
11、建一个接收队列消息的客户端监听端,监听的队列名称要一致,这里是test,通过content接收字符文本内容,这里也可以是对象接收,springboot会自动序列,反序列化。
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component; @Component
@RabbitListener(queues="test")
public class TestReceiver {
@RabbitHandler
public void process(String content) {
System.out.println("accept:"+content);
}
}
12、建一个发布端,测试队列
import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.chobits81.cc.component.util.DirectCommUtil; @Controller
@RequestMapping(value = "/services/rabbit/test")
public class RabbitTestController{
public static final Logger LOG = LoggerFactory.getLogger(RabbitTestController.class);
@Autowired
private AmqpTemplate rabbitTemplate;
@RequestMapping(value = "/send", method = { RequestMethod.POST, RequestMethod.GET })
public void send(HttpServletRequest request,HttpServletResponse response)
{
PrintWriter printWriter = null;
String string = "";
try {
printWriter = response.getWriter();
response.setContentType("application/json;charset=" + DirectCommUtil.encoding_utf8);
String content = request.getParameter("content");
rabbitTemplate.convertAndSend("test",content);
string = "ok";
} catch (Exception e) {
// TODO: handle exception
LOG.error("异常",e);
}finally {
if (null != printWriter) {
printWriter.print(string);
printWriter.flush();
printWriter.close();
}
}
} }
13、客户端监听
@RabbitListener要结合@EnableRabbit一起使用,所以在springboot启动类上加入@EnableRabbit注解
import org.springframework.amqp.rabbit.annotation.EnableRabbit;
@EnableRabbit
//此处省略了其它注解配置...
public class Application { public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
14、启动springboot,通过地址测试效果:

后台客户端接收打印:

spring boot 中 rabbit mq基础例子的更多相关文章
- Spring boot集成Rabbit MQ使用初体验
		Spring boot集成Rabbit MQ使用初体验 1.rabbit mq基本特性 首先介绍一下rabbitMQ的几个特性 Asynchronous Messaging Supports mult ... 
- Spring Boot and Rabbit MQ 异常的时候消息的状态
		我们有一个处理消息的方法. 在处理消息的时候出现了异常,那出现异常后这个消息会怎么处理呢. 根据我们的实际情况的观察,如果出现了异常. 但是你没有捕获或者处理异常,这个消息会一直存在,并且你的系统会持 ... 
- Spring Boot中文文档(官方文档翻译 基于1.5.2.RELEASE)
		作者:Phillip Webb, Dave Syer, Josh Long, Stéphane Nicoll, Rob Winch, Andy Wilkinson, Marcel Overdijk, ... 
- Spring Boot中使用Spring-data-jpa让数据访问更简单、更优雅
		在上一篇Spring中使用JdbcTemplate访问数据库中介绍了一种基本的数据访问方式,结合构建RESTful API和使用Thymeleaf模板引擎渲染Web视图的内容就已经可以完成App服务端 ... 
- Spring Boot中使用Spring-data-jpa
		在实际开发过程中,对数据库的操作无非就“增删改查”.就最为普遍的单表操作而言,除了表和字段不同外,语句都是类似的,开发人员需要写大量类似而枯燥的语句来完成业务逻辑. 为了解决这些大量枯燥的数据操作语句 ... 
- Spring Boot中使用RabbitMQ
		很久没有写Spring Boot的内容了,正好最近在写Spring Cloud Bus的内容,因为内容会有一些相关性,所以先补一篇关于AMQP的整合. Message Broker与AMQP简介 Me ... 
- Spring Boot中的缓存支持(一)注解配置与EhCache使用
		Spring Boot中的缓存支持(一)注解配置与EhCache使用 随着时间的积累,应用的使用用户不断增加,数据规模也越来越大,往往数据库查询操作会成为影响用户使用体验的瓶颈,此时使用缓存往往是解决 ... 
- Spring Boot中使用PostgreSQL数据库
		在如今的关系型数据库中,有两个开源产品是你必须知道的.其中一个是MySQL,相信关注我的小伙伴们一定都不陌生,因为之前的Spring Boot关于关系型数据库的所有例子都是对MySQL来介绍的.而今天 ... 
- Spring Boot中的事务管理
		原文 http://blog.didispace.com/springboottransactional/ 什么是事务? 我们在开发企业应用时,对于业务人员的一个操作实际是对数据读写的多步操作的结合 ... 
随机推荐
- IQueryable 和 IEnumerable(二)
			IQueryable 和 IEnumerable的扩展方法 一 我们从ef的DbSet<T>看起来,我们看到他继承了IQueryable<T> 和 IEnumerable&l ... 
- 清空资源管理器访问过FTP的账号、密码
			修改注册表,删除HKEY_CURRENT_USER\SOFTWARE\Microsoft\FTP\Accounts下相对应的项即可,即为xxx.xxx.xxx.xxx项. 如下图所示: 
- SQLSTATE[HY000]: General error: 1366 Incorrect string value
			在Laravel项目的 storages/logs/Laravel.log看到的错误信息片段: SQLSTATE[HY000]: General error: 1366 Incorrect strin ... 
- css----7渐变
			linear-gradient(90deg,red 10%,yellow 20%,green 30%) <!DOCTYPE html> <html> <head> ... 
- undertow服务器
			参考地址:http://undertow.io/undertow-docs/undertow-docs-1.3.0/index.html 1.引入相关jar <dependencies> ... 
- python相关软件安装流程图解——linux 安装python3——Python-3.7.1
			请先确保已经安装了虚拟机 python相关软件安装流程图解——虚拟机安装——CentOS-7-x86_64-DVD-1810——CentOS-01下载 https://www.cnblogs.com/ ... 
- 牛客多校第六场 B Shorten IPv6 Address 模拟
			题意: 给你一个二进制表示的IPv6地址,让你把它转换成8组4位的16进制,用冒号分组的表示法.单组的前导0可以省略,连续多组为0的可以用两个冒号替换,但是只允许替换一次.把这个地址通过这几种省略方式 ... 
- swoole手册
			https://wiki.swoole.com/wiki/ Swoole Github项目地址:https://github.com/swoole/swoole-src/ (支持请点Star) 开源中 ... 
- 16.ajax_case06
			# 抓取华尔街见闻实时快讯 # https://wallstreetcn.com/live/global?from=navbar import requests import json header ... 
- springboot启动器:spring-boot-starter
			今天想要导入thymeleaf的依赖,但是又不想从其他博复制粘贴,于是去spring官方文档找一找 在idea新建的springbootweb项目中,有一个HELP.md文件,里面包含spring w ... 
