RabbitMQ消息队列使用测试

您所在的位置:网站首页 gis用来干什么 RabbitMQ消息队列使用测试

RabbitMQ消息队列使用测试

2023-05-29 13:46| 来源: 网络整理| 查看: 265

RabbitMQ消息队列使用测试 原创

GIS韩 2023-05-28 00:25:09 博主文章分类:Spring boot ©著作权

文章标签 rabbitmq spring boot 消息队列 spring maven 文章分类 Html/CSS 前端开发

©著作权归作者所有:来自51CTO博客作者GIS韩的原创作品,请联系作者获取转载授权,否则将追究法律责任

在上一篇博文中,已经在Centos7.2上完成消息队列服务器的搭建。这里测试一下是否可以进行正常的消息推送和接收。 新建一个Spring boot项目,然后进行测试

pom.xml 4.0.0 org.springframework.boot spring-boot-starter-parent 2.0.5.RELEASE com.example mq 0.0.1-SNAPSHOT mq rabbitmq测试 1.8 org.springframework.boot spring-boot-starter-amqp org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test org.springframework.boot spring-boot-test org.springframework spring-test 4.3.6.RELEASE junit junit 4.12 org.springframework.amqp spring-rabbit-test test org.springframework.boot spring-boot-maven-plugin application.propertiesspring.rabbitmq.host=我的ip,注意换成你的 spring.rabbitmq.port=5672 spring.rabbitmq.username=sroot spring.rabbitmq.password=123456消息队列配置package com.example.mq.config; import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.BindingBuilder; import org.springframework.amqp.core.DirectExchange; import org.springframework.amqp.core.Queue; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class RabbitmqConfig { // 创建一个立即消费队列 @Bean public Queue immediateQueue() { // 第一个参数是创建的queue的名字,第二个参数是是否支持持久化 System.out.println("初始化队列"); return new Queue("immediate_queue_test1", true); } @Bean public DirectExchange immediateExchange() { // 一共有三种构造方法,可以只传exchange的名字, 第二种,可以传exchange名字,是否支持持久化,是否可以自动删除, //第三种在第二种参数上可以增加Map,Map中可以存放自定义exchange中的参数 return new DirectExchange("immediate_exchange_test1", true, false); } @Bean //把立即消费的队列和立即消费的exchange绑定在一起 public Binding immediateBinding() { return BindingBuilder.bind(immediateQueue()).to(immediateExchange()).with("immediate_routing_key_test1"); } }发送者package com.example.mq.sender; import java.util.Date; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class Sender { @Autowired RabbitTemplate rabbitTemplate; public void send() { String message = "message" + new Date(); System.out.println("Sender " + message); rabbitTemplate.convertAndSend("immediate_exchange_test1", "immediate_routing_key_test1", message); } }接收者package com.example.mq.receiver; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; @Component public class Receiver { @RabbitHandler @RabbitListener(queues = "immediate_queue_test1") public void immediateProcess(String message) { System.out.println("Receiver" + message); } }测试代码package com.example.mq; import com.example.mq.sender.Sender; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class MineTest { @Autowired Sender sender; @Test public void contextLoads() { sender.send(); } }运行结果

RabbitMQ消息队列使用测试_maven

可以看出正常进行发送和接收

收藏 评论 分享 举报

上一篇:Centos7 上部署RabbitMQ3.8.3采坑记

下一篇:基于python实现遥感影像预览图生成



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3