springboot-26-springboot 集成rabbitmq
rabbitmq是基于AMQP规范的一个消息代理, 它可以兼容jms, 支持其他语言, 并且可以跨平台
1, 安装
1) 普通安装
度娘:
2) docker 安装
sudo docker run -d -p 5672:5672 -p 15672:15672 rabbitmq:3-management
安装成功后: 使用 guest/guest 用户登录
2 使用:
1) 添加 rabbitmq的依赖
<!--添加 rabbitmq的依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>
2), 添加配置, 默认的配置为 localhost: 5672
########### rabbitmq 的配置 ****** spring: rabbitmq:host: 192.168.50.202port: 5672 # username: admin # password: secret
3), 生产者:
package com.wenbronk.enterprise.rabbitmq.send;import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component;/*** 消息发送者* 实现接口, 为了开机就自动发送* Created by wenbronk on 2017/6/13.*/ @Component public class RabbitMQSender implements CommandLineRunner{@Autowiredprivate RabbitTemplate rabbitTemplate;@Overridepublic void run(String... args) throws Exception {rabbitTemplate.convertAndSend("my-queue", "来自rabiitmq的问候");} }
4) 消费者:
package com.wenbronk.enterprise.rabbitmq.receive;import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component;/*** 消息接收者* Created by wenbronk on 2017/6/13.*/ @Component public class RabbitMQReceive {/*** 使用rabbitlistener接收消息* @param message*/@RabbitListener(queues = "my-queue")public void receiveMessage(String message) {System.out.println("receive: " + message);}}
5) ,使用队列模式:
package com.wenbronk.enterprise.rabbitmq.config;import org.springframework.amqp.core.Queue; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;/*** 队列模式的bean* Created by wenbronk on 2017/6/13.*/ @Configuration public class QueueConfig {/*** 定义使用到的队列* @return*/@Beanpublic Queue myQueue() {return new Queue("my-queue");} }
启动后, 就会自动发送消息
另外, 有看到过这个异常且无限循环的, 可以试下
org.springframework.amqp.AmqpException: No method found for class
https://jira.spring.io/browse/AMQP-573
@Beanpublic RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {RabbitTemplate template = new RabbitTemplate(connectionFactory);template.setMessageConverter(new Jackson2JsonMessageConverter());return template;}@Beanpublic SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(ConnectionFactory connectionFactory) {SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();factory.setConnectionFactory(connectionFactory);factory.setMessageConverter(new Jackson2JsonMessageConverter());return factory;}
调用:
@RabbitListener(queues = "merchant", containerFactory="rabbitListenerContainerFactory") public void process(@Payload UpdateMerchant request) { UpdateMerchantResponse response = new UpdateMerchantResponse();logger.info(request.getMerchantId() + "->" + response.getReturnCode());}
springboot-26-springboot 集成rabbitmq相关推荐
- springboot 集成rabbitmq 实例
springboot 集成rabbitmq 实例 个人在学习rabbitmq时发现网上很少有系统性介绍springboot和rabbitmq如何集成的,其他人总结的都片段化,所以结合个人调研过程,整理 ...
- SpringBoot集成RabbitMQ消息队列搭建与ACK消息确认入门
1.Windows下安装RabbitMQ的步骤详解+图解(erlang+RabbitMQ) 2.SpringBoot集成RabbitMQ参考文章 1.RabbitMQ介绍 RabbitMQ是实现AMQ ...
- Springboot集成RabbitMQ一个完整案例
springboot 集成 RabbitMQ 非常简单,如果只是简单的使用配置非常少,springboot 提供了 spring-boot-starter-amqp 对消息各种支持. 1.配置pom文 ...
- springboot 集成 RabbitMQ confirm 确认模式和 return 回退模式以及Consumer Ack模式
springboot 集成 RabbitMQ confirm 确认模式和 return 回退模式以及Consumer Ack模式 说明: RabbitMQ消息的可靠投递 在使用 RabbitMQ 的时 ...
- Springboot集成rabbitmq实现延时队列
Springboot集成rabbitmq实现延时队列 什么是延时队列? 列举几个使用场景: 常见的种类有: 延时任务-实现方式: 详细信息:[https://www.cnblogs.com/JonaL ...
- springboot集成rabbitmq商品秒杀业务实战(流量削峰)
消息队列如何实现流量削峰? 要对流量进行削峰,最容易想到的解决方案就是用消息队列来缓冲瞬时流量,把同步的直接调用转换成异步的间接推送,中间通过一个队列在一端承接瞬时的流量洪峰,在另一端平滑地将消息推送 ...
- Springboot集成rabbitMQ之mandatory和备份交换机
Springboot集成rabbitMQ之mandatory和备份交换机 mandatory 之前编写的消息队列代码中,通过重写ConfirmCallback中的confirm方法实现了消息送达的确认 ...
- RabbitMQ——SpringBoot集成RabbitMQ
文章目录: 1.创建一个SpringBoot工程--消息发送者 1.创建一个SpringBoot工程--消息接收者 3.测试结果 3.1 direct 3.2 fanout 3.3 topic 3.4 ...
- SpringBoot集成rabbitmq错误:org.springframework.amqp.AmqpConnectException: java.net.ConnectException的解决办法
在集成rabbitmq后,运行项目,报错日志: org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Co ...
- springboot 2.1 整合 rabbitmq 踩坑 砰砰砰
rabbitmq安装 rabbitmq安装 centos 7 简单参数说明 使用rabbitmq 需要新增交换机Exchange,队列Queue(队列中还要设置绑定路由关键字RoutingKey) B ...
最新文章
- Cocos2d-x手机游戏开发行业背景分析
- 我收集的网上公开的免费电子书
- 简易嵌入式管理平台 C 实现
- 烂泥:mysql修改本地主机连接
- 游戏开发需要具备哪些技术_生鲜小程序需要具备哪些功能板块?生鲜小程序开发...
- C语言有三个电阻r1r2r3,[VR虚拟现实]ARM硬件试题库及答案(37页)-原创力文档
- C语言关于signal()函数
- OpenStack 的部署T版(三)——Glance组件
- confirm修改按钮文字_踏入MG动画设计的门,才知道文字动画这么重要……
- [LeetCode]高频算法题
- centos7安装nginx和php,centos7安装nginx1.10和php7
- 基于改进YOLO v3网络的夜间环境柑橘识别方法
- echarts 折线图数据太多会导致卡顿_重新定义数据图表,还有比这个更厉害的吗?...
- PCB名詞解釋:通孔、盲孔、埋孔(转载)
- 2014Esri全球用户大会之ArcGIS Online
- 【项目篇- 项目团队部分怎么写、如何作图?(两千字图文总结建议)】创新创业竞赛项目计划书、新苗国创(大创)申报书、挑战杯创业计划竞赛
- 步进电机c语言驱动原理,连接PC的步进电机简单驱动电路
- 地球上20张最惊人照片!不看将后悔一辈子
- Maven POM介绍
- P5144 蜈蚣 (线性DP)
热门文章
- Hibernate annotation多对多配置
- 浅谈HTTP中Get与Post的区别
- Adobe推出HTML5动画设计工具Edge
- 语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程。...
- Windows Phone 7 SDK 7.1 Beta2 发布
- 【译】GraphQL vs. REST
- 利用yum 安装 lamp环境搭载 cacti监控和memcached数据库
- 【百度地图API】如何制作班级地理通讯录?LBS通讯录
- ORA-19809: 超出了恢复文件数的限制
- 2013-3-10日记