使用SpringCloud Stream结合rabbitMQ实现消息消费失败重发机制,前言:实际项目中经常遇到消息消费失败了,要进行消息的重发。比如支付消息消费失败后,要分不同时间段进行N次的消息重发提醒。
本文模拟场景
代码实例
特别注意代码与配置文件中的注释,各个使用说明都已经详细写在配置文件中
pom包引入
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.1.12.RELEASE
com.cloudstream
demo
0.0.1-SNAPSHOT
demo
Demo project for Spring Boot
1.8
Greenwich.SR5
org.springframework.boot
spring-boot-starter-web
org.springframework.cloud
spring-cloud-starter-stream-rabbit
org.projectlombok
lombok
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
org.springframework.boot
spring-boot-maven-plugin
spring-snapshots
Spring Snapshots
https://repo.spring.io/snapshot
true
spring-milestones
Spring Milestones
https://repo.spring.io/milestone
配置application.yml文件
注意各个配置的缩进格式,别搞错了
server:
port: 8081
spring:
application:
name: stream-demo
#rabbitmq连接配置
rabbitmq:
host: 127.0.0.1
port: 5672
username: admin
password: 123456
cloud:
stream:
bindings:
#消息生产者,与DelayDemoTopic接口中的DELAY_DEMO_PRODUCER变量