SpringCloud中Rabbitmq的使用
1.pom配置,添加以来jar包
1 <dependency> 2 <groupId>org.springframework.cloud</groupId> 3 <artifactId>spring-cloud-starter-bus-amqp</artifactId> 4 </dependency>
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}
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();
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 }
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 } 24 25
相关推荐
介绍Spring Cloud Stream与RabbitMQ集成的代码示例。Spring Cloud Stream是一个建立在Spring Boot和Spring Integration之上的框架,有助于创建事件驱动或消息驱动的微服务。
springcloud bus rabbitmq 分布式队列 http://knight-black-bob.iteye.com/blog/2356839
SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式-个人笔记文档(基础篇)
简单介绍了如何在Spring Cloud中使用RabbitMQ和Kafka来完成消息发送与接收
NULL 博文链接:https://tzylwl.iteye.com/blog/2425347
这里两个项目,一个发送mq消息列队,另一个介绍mq消息,你需要配置安装rabbitmq
spring cloud stream rabbitmq 资源
springcloud_rabbitMQ_消息可靠性投递
spring cloud stream 整合 rabbitmq , 自定义消息通道,既能发消息,也能收消息
rabbitmq的代码示例
spring-cloud之spring-cloud-stream,底层为rabbitmq实现,简单栗子,仅供参考。生产者、消费者配置及生产者、消费者代码实现。
RabbitMQ解决分布式事务实例,解决事物一致性-------基于springcloud搭建实例,
3.Spring Cloud中服务的发现与消费 4.Eureka中的核心概念 5.什么是客户端负载均衡 6.Spring RestTemplate中几种常见的请求方式 7.RestTemplate的逆袭之路,从发送请求到负载均衡 8.Spring Cloud中负载均衡器...
spring cloud整合MQTT简单示例,分为三个项目eureka-server、service-hi、service-ribbon,MQTT环境需要自己提前搭好,我这搭的环境是apache-apollo-1.7.1
面试题很全, 都是自己整理的, 包括 java基础, mysql, redis, rabbitmq以及spring cloud等知识, 适用于初级,中级java工程师
Spring Cloud(十)高可用的分布式配置中心 Spring Cloud Config 中使用 Refresh spring-cloud-config-bus-rabbitMQ Spring Cloud(十一)高可用的分布式配置中心 Spring Cloud Bus 消息总线集成(RabbitMQ)
第1章 SpringCloud简介 第2章 SpringCache缓存详细讲解及应用 第3章 Redis高级缓存讲解及应用 第4章 SpringSecurity安全详细讲解及应用 第5章 RabbitMQ高级消息的讲解及应用 第6章 ElasticSearch详细讲解及应用 第7...
实践方志鹏博客搭建Springcloud+RabbitMQ+Config-client+config-server Eureka-server的微服务架构,通过/bus/refresh接口触发所有config-client自动从config-server重新读取配置文件。SpringCloud和SpringBoot版本...