irpas技术客

rabbitMq整合springboot的使用流程_卷帘大将头号卷毛_rabbitmq springboot 使用

网络 1349

1.安装rabbitmq 使用docker 的方式创建rabbitMq #创建容器启动 docker run -d --restart=always -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:3.8-management 访问rabbitMq管理后台 管理后台:http://IP:15672

2.创建rabbitmq发送消息模块(这里我们在mq的消费端进行交换机和队列的创建) 创建模块导入依赖 <dependencies> <!--rabbitmq消息队列--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency> </dependencies> 3.添加Service方法(发送消息的方法) @Service //交由spring容器管理 public class RabbitService { @Autowired private RabbitTemplate rabbitTemplate; /** * 发送消息 * @param exchange 交换机名称 //需要和消费端创建交换机名称一致 * @param routingKey 路由键名称 //需要和消费端创建路由器名称一致 * @param message 消息数据 //发送什么类型数据,消费端就用什么类型接受 */ public boolean sendMessage(String exchange, String routingKey, Object message) { rabbitTemplate.convertAndSend(exchange, routingKey, message); return true; } } 4.配置mq的消息转换器 配置的原因:Spring会把你发送的消息序列化为字节发送给MQ,接收消息的时候,还会把字节反序列化为Java对象。 不过,默认情况下Spring采用的序列化方式是JDK序列化。众所周知,JDK序列化存在下列问题: 1.数据体积过大 2.有安全漏洞 3.可读性差作用:显然,JDK序列化方式并不合适。我们希望消息体的体积更小、可读性更高,因此可以使用JSON方式来做序列化和反序列化。 @Configuration public class MQConfig { @Bean public MessageConverter messageConverter(){ return new Jackson2JsonMessageConverter(); } } 5.需要使用mq发送消息的模块可以依赖此模块,扫描类,在需要使用的地方注入RabbitService调用其方法.需要配置rabbitmq的连接信息. #rabbitmq地址 spring.rabbitmq.host=192.168.44.165 spring.rabbitmq.port=5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest 6.rabbitmq的消费端配置 在消费端模块创建监听器 @Component public class RbListener { /** * name:依次为交换机名称,队列名称,和路由key名称 * OrderMqVo:为消息发送端所发送消息的数据类型,spring会自动帮我们赋值 */ @RabbitListener(bindings = {@QueueBinding(exchange = @Exchange(name = MqConst.EXCHANGE_DIRECT_ORDER),value =@Queue(name =MqConst.QUEUE_ORDER),key = MqConst.ROUTING_ORDER)}) public void consume(OrderMqVo orderMqVo, Message message, Channel channel){ System.out.println("orderMqVo = " + orderMqVo); } } 消费端也需要配置rabbitmq的连接信息 #rabbitmq地址 spring.rabbitmq.host=192.168.44.165 spring.rabbitmq.port=5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #rabbitmq #springboot #使用 #run #D #restartalways