项目中因业务需要,会用到消息中间件。这里使用RabbitMQ来配合Springboot项目,进行业务间的数据通信。
1.引入与配置
在项目的POM文件中引用RabbitMQ的依赖;然后在application配置文件中配置MQ的连接信息。
<!--pom文件-->
<!--rabbitmq-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
-----------------------------------------------------------------------------------
#application配置文件
#rabbitmq配置
spring.rabbitmq.host=${server.host}
spring.rabbitmq.listener.direct.missing-queues-fatal=true
spring.rabbitmq.port=5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=123456
2.设置队列与读取消息
创建RabbitMqConfig文件用以设置队列,交换机及绑定队列交换机;最后使用注解来读取消息。
@Configuration
public class RabbitMqConfig {
/**
* 接收数据接口队列
*
* @return
*/
@Bean
public Queue dataQueue() {
return new Queue(Const.QUEUE_DATA, true);
}
@Bean
public DirectExchange dataExchange() {
return new DirectExchange(Const.QUEUE_DATA + Const.EXCHANGE_SUF, true, false);
}
@Bean
public Binding dataBinding() {
return BindingBuilder.bind(dataQueue()).to(dataExchange()).with(Const.QUEUE_DATA + Const.ROUTING_KEY_SUF);
}
@RabbitListener(queues = {Const.QUEUE_DATA})
@Component
@Slf4j
public class LoginLogReceiver {
// 处理类型为fastjson对象的消息
@RabbitHandler
public void loginLogReceive(JSONObject jsonObject){
//todo处理业务逻辑
}
}