mq消息持久化
配置消息队列
package com.example.demo.durable;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class DurableQueueConfig {
public final static String DURABLE="is_durable";//持久化
public final static String NOT_DURABLE="not_durable";//不持久化
@Bean
public Queue durable(){
return new Queue(DURABLE,true);
}
@Bean
public Queue notDurable(){
return new Queue(NOT_DURABLE,false);
}
}
创建生产者
package com.example.demo.durable;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class DurableSender {
@Autowired
private RabbitTemplate rabbitTemplate;
public void send(String messsage){
rabbitTemplate.convertAndSend(DurableQueueConfig.DURABLE,messsage);
rabbitTemplate.convertAndSend(DurableQueueConfig.NOT_DURABLE,messsage);
}
}
创建发送消息控制层
package com.example.demo.durable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("durable")
public class DurableController {
@Autowired
private DurableSender durableSender;
@PostMapping
public String send(String message){
durableSender.send(message);
return message;
}
}
发消息后
重启mq消息服务后