您的位置:首页 > 编程语言 > Java开发

SpringBoot 集成RabbitMq

2018-10-26 16:13 309 查看

SpringBoot 集成RabbitMq 实现简答发送与消费

pom依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>

yml配置文件

rabbitmq:
host: 127.0.0.1
username: test
password: test
virtual-host: test
listener:
simple:
#手动应答
acknowledge-mode: manual
#消费端最小并发数
concurrency: 5
#消费端最大并发数
max-concurrency: 10
#一次请求中预处理的消息数量
prefetch: 5
cache:
channel:
#缓存channel数量
size: 50

添加持久化列队配置

//此注解作用与spring xml一致
@Configuration
public class RabbitMqConfig {

/**
* 列队名
*/
private final String QUEUE = "test";

@Bean
public Queue queue() {
// 1:队列名 2:是否持久化 3:是否独有 4::是否 5:自动删除
return new Queue(QUEUE,true,false,true);
}
}

添加消费监听端口

@Component
@RabbitListener(queues = "test")
//此注解采用lombok 插件 idea 需要安装插件pom添加依赖
@Slf4j
public class Receiver {

/**
* 消息处理
* @param mqInfo
*/
@RabbitHandler
public void process(MqInfo mqInfo){
log.info("Receiver:》》》》》》》》》》》》》》"+mqInfo.toString());
if(mqInfo.getType().equals(MqEnumerate.EMAIL.getCode())){
System.out.println("发送邮件");
}else if(mqInfo.getType().equals(MqEnumerate.SHORTMESSAGE.getCode())){
System.out.println("发送短信");
}else {
System.out.println("保存日志");
}

}
}

添加发送接口

@Component
@Slf4j
public class SendMq {
@Autowired
private AmqpTemplate amqpTemplate;

/**
* 列队名
*/
private final String QUEUE = "test";

/**
* 发送方法
* @param mqInfo
*/
public  void send(MqInfo mqInfo){
log.info("send:》》》》》》》"+mqInfo.toString());
//往名称为 test 的queue中发送消息
amqpTemplate.convertAndSend(QUEUE, mqInfo);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: