1、导入依赖
<dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-amqp</artifactId> <version>2.3.10</version></dependency>
2、配置application配置文件
#RabbitMQ rabbitmq: host: 112.124.20.34 username: guest password: guest #虚拟主机 virtual-host: / #端口号 port: 5672 listener: simple: #消费者最小数列 concurrency: 10 #消费者最大数列 max-concurrency: 10 #限制消费者每次只处理一条消息,处理完再继续下一条消息 prefetch: 1 #默认true auto-startup: true #被拒绝时重新进入队列 default-requeue-rejected: true template: retry: #发布重试,默认false enabled: true #重试时间,默认1000ms initial-interval: 1000ms #重试最大次数,默认3次 max-attempts: 3 #重试最大间隔时间,默认10000ms max-interval: 10000ms #重试的间隔乘数,比如配2,第一次等10s,第二次就等20s,第三次就等40s multiplier: 1
3、编写配置类
@Configurationpublic class RabbitMQConfig { @Bean public Queue queue() { return new Queue("queue", true); }}
4、编写消息发送者(生产者)类
@Service@Slf4jpublic class MQSender { @Autowired private RabbitTemplate rabbitTemplate; public void send(Object msg) { log.info("消息发送:" + msg); rabbitTemplate.convertAndSend("fanoutExchange","", msg); }}
5、编写消息接收者(消费者)类
@Service@Slf4jpublic class MQReceiver { @RabbitListener(queues = "queue") public void receive(Object msg) { log.info("接收消息:" + msg); }}
6、编写测试Controller
@Controller@RequestMapping("/user")public class UserController { @Autowired private MQSender mqSender; /** * 测试RabbitMQ */ @RequestMapping("/mq") @ResponseBody public void mq() { mqSender.send("Hello"); }}