网站首页 > 精选文章 / 正文
作者:Cott
来源:www.cnblogs.com/cott/p/12402423.html
前文总结了Dubbo与SpringBoot的整合,本文基于这套框架,引入RabbitMQ消息队列。
1.在linux环境使用docker安装RabbitMQ
//拉取镜像
docker pull rabbitmq:management
//启动镜像
docker run -di --name myrabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management
安装成功后登陆控制台
2.生产者
pom.xml中引入RabbitMQ依赖
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-amqp -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
<version>1.3.5.RELEASE</version>
</dependency>
application.yml
配置RabbitMQ服务端连接,和交换机名称
spring:
rabbitmq:
port: 5672
username: admin
password: admin
host: 192.168.200.128
virtual-host: /
order:
fanout:
exchange: order.fanout.exchange
Producer.java
生产者向MQ发送消息
UserServiceImpl.java
在用户接口的实现类中,调用生产者的方法
3.消费者
pom.xml中引入RabbitMQ依赖
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-amqp -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
<version>1.3.5.RELEASE</version>
</dependency>
配置RabbitMQ服务端信息,和交换机以及队列名称
application.yml
spring:
rabbitmq:
port: 5672
username: admin
password: admin
host: 192.168.200.128
virtual-host: /
order:
fanout:
exchange: order.fanout.exchange
queue: order.fanout.queue
@RabbitListener注解,绑定队列,交换机,以及选择交换模式FANOUT
- @RabbitListener 可以标注在类上面,需配合 @RabbitHandler 注解一起使用
- @RabbitListener 标注在类上面表示当有收到消息的时候,就交给 @RabbitHandler 的方法处理,具体使用哪个方法处理,根据 MessageConverter 转换后的参数类型
Consumer.java(消费者)
package com.cott.gmail.bootorderserviceconsumer.service.impl;
import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.rabbit.annotation.*;
import org.springframework.stereotype.Component;
@Component
@RabbitListener(bindings = @QueueBinding(value = @Queue(value = "${order.fanout.queue}", autoDelete = "true"), exchange =
@Exchange(value = "${order.fanout.exchange}", type = ExchangeTypes.FANOUT)))
public class Consumer {
@RabbitHandler
public void processMessage(String msg) {
System.out.format("Receiving Message: -----[%s]----- \n.", msg);
}
}
消费者中有调用生产者getAddress()的方法,生产者向MQ中发送一条消息,同时消费者监听MQ,消费消息。
OrderServiceImpl.java
4.验证
先后启动生产者和消费者,在浏览器发起请求
消费者控制台输出
同时在RabbitMQ控制台查看监控日志
Tags:rabbitmq management
猜你喜欢
- 2024-12-11 九步安装Rabbitmq集群
- 2024-12-11 Docker-Compose一键搭建MySQL,Redis,RabbitMQ,Kafka开发环境
- 2024-12-11 RabbitMQ安装并配置
- 2024-12-11 Rabbitmq 集群
- 2024-12-11 手把手教你搭建 RabbitMQ 集群
- 2024-12-11 超详细的RabbitMQ入门,看这篇就够了
- 2024-12-11 如何通过Docker搭建一套RabbitMQ的测试环境?
- 2024-12-11 快速上手 RabbitMQ:使用 Docker 轻松搭建消息队列系统
- 2024-12-11 你都工作两年半了,还不会RabbitMQ?
- 2024-12-11 RabbitMQ CLI 管理工具 rabbitmqadmin(管理和监控)