1.pom配置,添加以来jar包

  1. <dependency>
  2. <groupId>org.springframework.cloud</groupId>
  3. <artifactId>spring-cloud-starter-bus-amqp</artifactId>
  4. </dependency>

pom 配置

2.配置文件配置

  1. #RabbitMq
  2. spring.rabbitmq.host=${dev.spring.rabbitmq.host}
  3. spring.rabbitmq.port=${dev.spring.rabbitmq.port}
  4. spring.rabbitmq.username=${dev.spring.rabbitmq.username}
  5. spring.rabbitmq.password=${dev.spring.rabbitmq.password}
  6.  
  7. spring.rabbitmq.exchange=${dev.spring.rabbitmq.exchange}
  8. spring.rabbitmq.routingkey=${dev.spring.rabbitmq.routingkey}
  9. spring.rabbitmq.queue=${dev.spring.rabbitmq.queue}

setting.properties

3.rabbitmq消息发送一

  1. @Autowired
  2. private AmqpTemplate amqpTemplate;
  3. //key:消息名称;content:消息内容
  4. public void send(String key,String content) {
  5. amqpTemplate.convertAndSend(key, content);
  6. }

发送消息

4.rabbitmq消息接收一

  1. @Component
  2. @EnableScheduling
  3. public class ClmNeedPaperMqReciever extends ClmBaseMqReciever {
  4. /**
  5. *RabbitListener:rabbitmq监听;queues = "queues1":监听的队列名*称;@Payload String orderXML:接收到的消息内容
  6. */
  7. @RabbitHandler
  8. @RabbitListener(queues = "queues1", containerFactory = "rabbitListenerContainerFactory")
  9. public void process(@Payload String orderXML) {
  10.  
  11. //处理内容
  12. }

接受消息

5.rabbitmq发送二

  1. String MQname ="ClmClose";
  2. ConnectionFactory factory = new ConnectionFactory();
  3. factory.setHost("129.1.9.193");
  4. factory.setUsername("admin");
  5. factory.setPassword("admin");
  6. factory.setPort(5672);
  7. Connection connection;
  8. try {
  9. connection = factory.newConnection();
  10. Channel channel = connection.createChannel();
  11. channel.queueDeclare(MQname, true, false, false, null);
  12. channel.basicPublish("", MQname, null, returnJSON.getBytes("UTF-8"));
  13. channel.close();
  14. connection.close();

发送mq消息

6.rabbitmq接收二

  1. /* 建立连接 */
  2. ConnectionFactory factory = new ConnectionFactory();
  3. factory.setHost("129.1.9.193");// MQ的IP
  4. factory.setPort(5672);// MQ端口
  5. factory.setUsername("admin");// MQ用户名
  6. factory.setPassword("admin");// MQ密码
  7. Connection connection = factory.newConnection();
  8. Channel channel = connection.createChannel();
  9.  
  10. /* 声明要连接的队列 */
  11. channel.queueDeclare(QUEUE_NAME, true, false, false, null);
  12. System.out.println("等待消息产生:");
  13.  
  14. /* 创建消费者对象,用于读取消息 */
  15. QueueingConsumer consumer = new QueueingConsumer(channel);
  16. channel.basicConsume(QUEUE_NAME, true, consumer);
  17.  
  18. /* 读取队列,并且阻塞,即在读到消息之前在这里阻塞,直到等到消息,完成消息的阅读后,继续阻塞循环 */
  19. while (true) {
  20. QueueingConsumer.Delivery delivery = consumer.nextDelivery();
  21. String message = new String(delivery.getBody(),"UTF-8");
  22. System.out.println("收到消息'" + message + "'");
  23. }

接受mq消息

7.用接收一的方法去接收发送二的内容时需要转换,否则会出现乱码

  1. @Component
  2. @EnableScheduling
  3. public class ClmNeedPaperMqReciever extends ClmBaseMqReciever {
  4.  
  5. /**
  6. *RabbitListener:rabbitmq监听;queues = "queues1":监听的队
  7. *列名称;@Payload String orderXML:接收到的消息内容
  8. */
  9. @RabbitHandler
  10. @RabbitListener(queues = "queues1", containerFactory = "rabbitListenerContainerFactory")
  11. public void process(@Payload String orderXML) {
  12.  
  13. //处理内容
  14.  
  15. // 解析报文对象,将byte数组还原
  16. String[] listStr = orderXML.split(",");
  17. byte[] listByte = new byte[listStr.length];
  18. for (int i = 0; i < listStr.length; i++) {
  19. listByte[i] = new Byte(listStr[i]);
  20. }
  21. orderXML = new String(listByte, "UTF-8");
  22.  
  23. }

接收消息

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. SpringAOP拦截器的代理机制

    要使用方法名匹配AOP切面编程,需要使用到spring中的org.springframework.aop.support.NameMatchMethodPointcutAdvisor这个类,advic ...

  2. RN笔记

    https://facebook.github.io/react-native/docs/using-a-listview.html react native类似于react,不过它使用的是原生组件, ...

  3. angular的优化

    https://github.com/atian25/blog/issues/5 更快地执行digest: 优化watch $scope.$watch(watchExpression, modelCh ...

  4. 如何用纯 CSS 创作阶梯文字特效

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/MXYBEM 可交互视频教 ...

  5. Django 千锋培训的学习笔记(1)

    Django 千锋培训读书笔记 https://www.bilibili.com/video/av17879644/?p=1 切换到创建项目的目录 cd C:\Users\admin\Desktop\ ...

  6. H.264 Profile-level-id

    基于SIP协议的VOIP通信,该字段通常位于视频协商sdp报文中,如: video RTP/AVP rtpmap: H264/ fmtp: profile-level-id=42801E; packe ...

  7. BZOJ 2295: [POJ Challenge]我爱你啊

    由于是子序列,那么难度就在于读入 #include<cstdio> #include<algorithm> #include<cstring> using name ...

  8. Knockout v3.4.0 中文版教程-11-控制文本内容和外观-text绑定

    2. text绑定 目的 text绑定把传入的参数通过关联的DOM元素来显示文本值. 通常这对像<span>或<em>标签等使用,但技术上你可以对任何元素使用该绑定. 例子 T ...

  9. hlg 1580 tell me the length

    智力题,观察上一行,有几个数字. 比如,S[1]=1; S[2]=11; S[3]=21; S[4]=1211; 这样就可以观察出来,序列一是1个1 --->  S[2] = 11 ; 序列二是 ...

  10. iOS转场动画初探

    一般我们就用两种转场push和present present /** 1.设置代理 - (instancetype)init { self = [super init]; if (self) { se ...