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的使用的更多相关文章

  1. Springcloud 中 SpringBoot 配置全集 (收藏版)

    Springcloud 中 SpringBoot 配置全集 (收藏版) 疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 前言 疯狂创客圈(笔者尼恩创建的高并发研习社群 ...

  2. SpringCloud之RabbitMQ消息队列原理及配置

    本篇章讲解RabbitMQ的用途.原理以及配置,RabbitMQ的安装请查看SpringCloud之RabbitMQ安装 一.MQ用途 1.同步变异步消息 场景:用户下单完成后,发送邮件和短信通知. ...

  3. 【微服务】- SpringCloud中Config、Bus和Stream

    文章目录 SpringCloud中Config 1.Config的简介 官网 分布式系统面临的问题 config是什么 如何使用 能做什么 与git的配合使用 2.Config服务端的配置和测试 准备 ...

  4. .NET中RabbitMQ的使用

    概述 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public ...

  5. SpringCloud中eureka配置心跳和剔除下线的服务的时间

    在默认的springCloud中eureka注册中心在服务下线时表现的非常不灵敏,用惯了dubbo的zk注册中心表示很不习惯,eureka设计的本意是在服务不会频繁上下线和网络稳定的内网,这种设计在生 ...

  6. NETCore中RabbitMQ的使用

    NET中RabbitMQ的使用 https://www.cnblogs.com/xibei666/p/5931267.html 概述 MQ全称为Message Queue, 消息队列(MQ)是一种应用 ...

  7. springcloud中servcie层调用fegin异常以及异步方法的实现

    近日在做业务上的短信推送和APP消息推送,通过调用别的模块的接口来实现,在springcloud中通过fegin进行调用.这里要说明的事情并不是如何开发推送功能,而是在调试过程中碰到的一些小问题.我把 ...

  8. linux中RabbitMQ安装教程

    linux中RabbitMQ安装教程 在做一个微服务项目时候用到消息队列,于是深入了解了消息队列知识,并在linux上安装了Rabbitmq,本博客介绍Rabbitmq的安装教程,想要深入了解消息队列 ...

  9. OpenStack 中 RabbitMQ 的使用

    OpenStack 中 RabbitMQ 的使用 本文是 OpenStack 中的 RabbitMQ 使用研究 两部分中的第一部分,将介绍 RabbitMQ 的基本概念,即 RabbitMQ 是什么. ...

随机推荐

  1. 细说unittest-2

    一.unittest模块官方文档: https://docs.python.org/3/library/unittest.html 二.一张图看懂unittest: 三.Unittest主要方法属性: ...

  2. Verilog学习笔记基本语法篇(八)········ 结构说明语句

    Verilog中的任何过程都可以属于以下四种结构的说明语句; 1) initial;  2) always;  3) task;   4) function; 1) initial说明语句: 一个程序 ...

  3. 牛客网暑期ACM多校训练营(第五场) E room(最小费用最大流 , 最小权二分图匹配模板)

    链接: https://www.nowcoder.com/acm/contest/143/E 题意: 给定n个宿舍的新安排, 每个宿舍都有4个人, 问要至少有多少个人换位才能变成新安排. 可以建一个二 ...

  4. Java面试——HashCode的作用原理和实例解析

    ,也就是说,我们先通过 HashCode来判断两个类是否存放某个桶里,但这个桶里可能有很多类,那么我们就需要再通过 equals 在这个桶里找到我们要的类. 请看下面这个例子 : public cla ...

  5. 脑阔疼的双层SQLserver游标

    本来简单的双层游标没啥的,内层游标需要读取的是视图的内容,一直报“当前命令发生了严重错误.应放弃任何可能产生的结果.”的错误.无可奈何尝试先将视图的数据放到表变量中,之后再用游标遍历表变量. 简直很怀 ...

  6. 基于注解实现SpringBoot多数据源配置

    1.功能介绍 在实际的开发中,同一个项目中使用多个数据源是很常见的场景.最近在学习的过程中使用注解的方式实现了一个Springboot项目多数据源的功能.具体实现方式如下. 2.在applicatio ...

  7. Leetcode 322.零钱兑换

    零钱兑换 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成总金额,返回 -1. 示例 1: 输入: co ...

  8. ActionProxy相关实现类

    package com.opensymphony.xwork2; import com.opensymphony.xwork2.config.Configuration; import com.ope ...

  9. 更新yum源导致yum不可用

    当安装和yum配置相关的包后报yum模块找不到 yum install -y yum-utils device-mapper-persistent-data lvm2 yum list|grep yu ...

  10. Error Domain=AVFoundationErrorDomain Code=-11800 "这项操作无法完成"

    在iOS上开发视频操作的时候,出现错误: 录制视频错误:Error Domain=AVFoundationErrorDomain Code=-11800 "这项操作无法完成" Us ...