SpringCloud中Rabbitmq的使用
1.pom配置,添加以来jar包
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
pom 配置
2.配置文件配置
#RabbitMq
spring.rabbitmq.host=${dev.spring.rabbitmq.host}
spring.rabbitmq.port=${dev.spring.rabbitmq.port}
spring.rabbitmq.username=${dev.spring.rabbitmq.username}
spring.rabbitmq.password=${dev.spring.rabbitmq.password} spring.rabbitmq.exchange=${dev.spring.rabbitmq.exchange}
spring.rabbitmq.routingkey=${dev.spring.rabbitmq.routingkey}
spring.rabbitmq.queue=${dev.spring.rabbitmq.queue}
setting.properties
3.rabbitmq消息发送一
@Autowired
private AmqpTemplate amqpTemplate;
//key:消息名称;content:消息内容
public void send(String key,String content) {
amqpTemplate.convertAndSend(key, content);
}
发送消息
4.rabbitmq消息接收一
@Component
@EnableScheduling
public class ClmNeedPaperMqReciever extends ClmBaseMqReciever {
/**
*RabbitListener:rabbitmq监听;queues = "queues1":监听的队列名*称;@Payload String orderXML:接收到的消息内容
*/
@RabbitHandler
@RabbitListener(queues = "queues1", containerFactory = "rabbitListenerContainerFactory")
public void process(@Payload String orderXML) { //处理内容
}
接受消息
5.rabbitmq发送二
String MQname ="ClmClose";
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("129.1.9.193");
factory.setUsername("admin");
factory.setPassword("admin");
factory.setPort(5672);
Connection connection;
try {
connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(MQname, true, false, false, null);
channel.basicPublish("", MQname, null, returnJSON.getBytes("UTF-8"));
channel.close();
connection.close();
发送mq消息
6.rabbitmq接收二
/* 建立连接 */
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("129.1.9.193");// MQ的IP
factory.setPort(5672);// MQ端口
factory.setUsername("admin");// MQ用户名
factory.setPassword("admin");// MQ密码
Connection connection = factory.newConnection();
Channel channel = connection.createChannel(); /* 声明要连接的队列 */
channel.queueDeclare(QUEUE_NAME, true, false, false, null);
System.out.println("等待消息产生:"); /* 创建消费者对象,用于读取消息 */
QueueingConsumer consumer = new QueueingConsumer(channel);
channel.basicConsume(QUEUE_NAME, true, consumer); /* 读取队列,并且阻塞,即在读到消息之前在这里阻塞,直到等到消息,完成消息的阅读后,继续阻塞循环 */
while (true) {
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String message = new String(delivery.getBody(),"UTF-8");
System.out.println("收到消息'" + message + "'");
}
接受mq消息
7.用接收一的方法去接收发送二的内容时需要转换,否则会出现乱码
@Component
@EnableScheduling
public class ClmNeedPaperMqReciever extends ClmBaseMqReciever { /**
*RabbitListener:rabbitmq监听;queues = "queues1":监听的队
*列名称;@Payload String orderXML:接收到的消息内容
*/
@RabbitHandler
@RabbitListener(queues = "queues1", containerFactory = "rabbitListenerContainerFactory")
public void process(@Payload String orderXML) { //处理内容 // 解析报文对象,将byte数组还原
String[] listStr = orderXML.split(",");
byte[] listByte = new byte[listStr.length];
for (int i = 0; i < listStr.length; i++) {
listByte[i] = new Byte(listStr[i]);
}
orderXML = new String(listByte, "UTF-8"); }
接收消息
SpringCloud中Rabbitmq的使用的更多相关文章
- Springcloud 中 SpringBoot 配置全集 (收藏版)
Springcloud 中 SpringBoot 配置全集 (收藏版) 疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 前言 疯狂创客圈(笔者尼恩创建的高并发研习社群 ...
- SpringCloud之RabbitMQ消息队列原理及配置
本篇章讲解RabbitMQ的用途.原理以及配置,RabbitMQ的安装请查看SpringCloud之RabbitMQ安装 一.MQ用途 1.同步变异步消息 场景:用户下单完成后,发送邮件和短信通知. ...
- 【微服务】- SpringCloud中Config、Bus和Stream
文章目录 SpringCloud中Config 1.Config的简介 官网 分布式系统面临的问题 config是什么 如何使用 能做什么 与git的配合使用 2.Config服务端的配置和测试 准备 ...
- .NET中RabbitMQ的使用
概述 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public ...
- SpringCloud中eureka配置心跳和剔除下线的服务的时间
在默认的springCloud中eureka注册中心在服务下线时表现的非常不灵敏,用惯了dubbo的zk注册中心表示很不习惯,eureka设计的本意是在服务不会频繁上下线和网络稳定的内网,这种设计在生 ...
- NETCore中RabbitMQ的使用
NET中RabbitMQ的使用 https://www.cnblogs.com/xibei666/p/5931267.html 概述 MQ全称为Message Queue, 消息队列(MQ)是一种应用 ...
- springcloud中servcie层调用fegin异常以及异步方法的实现
近日在做业务上的短信推送和APP消息推送,通过调用别的模块的接口来实现,在springcloud中通过fegin进行调用.这里要说明的事情并不是如何开发推送功能,而是在调试过程中碰到的一些小问题.我把 ...
- linux中RabbitMQ安装教程
linux中RabbitMQ安装教程 在做一个微服务项目时候用到消息队列,于是深入了解了消息队列知识,并在linux上安装了Rabbitmq,本博客介绍Rabbitmq的安装教程,想要深入了解消息队列 ...
- OpenStack 中 RabbitMQ 的使用
OpenStack 中 RabbitMQ 的使用 本文是 OpenStack 中的 RabbitMQ 使用研究 两部分中的第一部分,将介绍 RabbitMQ 的基本概念,即 RabbitMQ 是什么. ...
随机推荐
- opencast的docker安装
在之前的从源安装和从包安装opencast,都遇到较多环境问题导致失败.所有采用docker安装. Dockers是有能力打包应用程序及其虚拟容器,可以在任何Linux服务器上运行的依赖性工具,这有助 ...
- Perl学习三:运算符
运算符: 1.operand operator expression statement2.算术运算符 + - * / ** % -字符串参加运算必须转化为整数,若不能转化认为是0. 2.算术比较 & ...
- iOS UITextView点击事件处理
自定义一个UITextView UITextView 的selectedRange 影响 selectedTextRange 改变前者可影响后者 self.selectedRange -->se ...
- cs229_part3
接下来就是最最最重要的一个有监督学习算法了. 支持向量机 问题背景 样本集表示: \[(x,y)\in D, x\in R^n, y\in \{-1,+1\}\] 回到之前的逻辑回归模型中: 逻辑回归 ...
- 解决手机助手与 android sdk 的adb 冲突问题
现象:手机助手与 sdk 内的 adb冲突,用助手与真机连接后,sdk adb 就被干掉了 突发奇想: 突然有一天想到用助手的adb来覆盖sdk内的adb,果然奏效.现在eclipse.助手.cmd窗 ...
- Python flask+css+js+ajax 综合复习
flask 基本语法结构 注:这里练习的时候把装饰器的@给忘记了,导致访问404 下面练习一下在前段向后端传递参数 get请求需要用 request.args.get('变量') 去接收, get ...
- android 之 TabHost
TabHost的实现有两种方式,第一种继承TabActivity,从TabActivity中用getTabHost()方法获取TabHost.各个Tab中的内容在布局文件中定义就行了. mainAct ...
- jmeter结果分析详解
Jmeter测试报表相关参数说明 采用Jmeter测试工具对web系统作的负载测试,得出的响应报表,数据比较难懂,现作一具体说明.以下是在一次具体负载测试中得出的具体数值,测试线程设置情况为:线程数: ...
- web项目架构
二
- move_uploaded_file failed to open stream permission denied
Make sure that: IWPG_user, where user is a system user of the subscription who has rights to "R ...