RabbitMQ 整合 SpringCloud实战 RabbitMQ 整合 SpringCloud实战 rabbitmq-common 子项目 rabbitmq-springcloud-consumer 子项目 rabbitmq-springcloud-producer 子项目 RabbitMQ 整合 SpringCloud实战 注意一点,在发送消息的时候对 template 进行配置 mandatory=true 保证监听有效 生产端还可以配置其他属性,比如发送重试,超时时间、次数、间隔等 消费端核心配置: 首先配置手工确认模式,用于ACK的手工处理,这样我们可以保证消息的可靠性送达,或者在消费端消费失败的时候可以做到重回队列、根据业务记录日志等处理; 可以设置消费端的监听个数和最大个数,用于控制消费端的并发情况 @RabbitListener注解的使用: 消费端监听@RabbitListener注解,这个对于在实际工作中非常的好用 @RabbitListener是一个组合注解,里面可以注解配置(@QueueBinding、@Queue、@Exchange)直接通过这个组合注解一次性搞定消费端交换机、队列、绑定、路由、并且配置监听功能等 注:由于类配置写在代码里非常不友好,所以强烈建议大家使用配置文件配置 rabbitmq-common 子项目 创建模块:rabbitmq-common 只需要建立一个实体类,不需要勾选其它东西 在这个模块里面建立一个 entity 包,在 entity 里面创建 order类 Order.java: package com.dj.rabbitmqcommon.entity; import java.io.Serializable; public class Order implements Serializable { private String id; private String name; public Order() { } public Order(String id, String name) { super(); this.id = id; this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } common模块结构: rabbitmq-springcloud-consumer 子项目 创建模块:rabbitmq-springcloud-consumer 和创建公共模块一样。 导入 pom 依赖: <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>com.dj</groupId> <artifactId>rabbitmq-common</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test<