-
加AMQP启动依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
-
查看RabbitAutoConfiguration自动装配类已经RabbitProperties属性配置类
TODO....
-
在application.properties文件配置rabbit属性
项目结构:
生产者端属性文件:
server.port=8082
spring.profiles.active=dev
spring.rabbitmq.addresses=192.168.10.123:5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=admin
spring.rabbitmq.virtual-host=/
#生产者
#配置时需要加上时间单位
spring.rabbitmq.connection-timeout=15s
#生产端开启确认功能
spring.rabbitmq.publisher-confirms=true
#处理消息不可达的回调,即发送失败返回
spring.rabbitmq.publisher-returns=true
#关闭自动签收功能
spring.rabbitmq.template.mandatory=true
#超时设置
spring.rabbitmq.template.reply-timeout=10s
#设置为true的时候RabbitTemplate(生产端)能够实现重试
spring.rabbitmq.template.retry.enabled=true
消费者端配置文件
server.port=8081
spring.profiles.active=dev
spring.rabbitmq.addresses=192.168.10.123:5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=admin
spring.rabbitmq.virtual-host=/
#消费者
#消费端重试
spring.rabbitmq.listener.simple.retry.enabled=true
#消息确认机制 开启手动ACK确认
spring.rabbitmq.listener.simple.acknowledge-mode=manual
#监听线程最小的线程数
spring.rabbitmq.listener.simple.concurrency=5
#监听线程最大的线程数
spring.rabbitmq.listener.simple.max-concurrency=10
-
rabbitmq-producer模块代码开发
1) 创建RabbitMqConfig 配置类
1.1) 配置队列实例 --配置Queue
实例对象,为消息队列设置一个名称,当然队列的名称同样也是
提供者与消费者之间的通讯基础
1.2)配置交换实例 --配置DirectExchange
实例对象,为交换设置一个名称,消息提供者与消息消费者