Spring Cloud AWS SQS v3 中的消息确认
1、概览 消息确认是 MQ 系统中的一种标准机制,它向 Message Broker 发出信号,表明消息已被消费,不应再次传递。在亚马逊的 SQS(Simple Queue Servic)中,确认是通过删除队列中的信息来执行的。
本文将带你了解 Spring Cloud AWS SQS v3 中开箱即提供的三种确认模式: ON_SUCCESS、MANUAL 和 ALWAYS。
本文将利用 Spring Cloud AWS SQS V3 入门文章 中的环境和测试设置,使用事件驱动场景来说明用例。
2、依赖 首先,导入 Spring Cloud AWS BOM,以确保 pom.xml 中的所有依赖项相互兼容:
<dependencyManagement> <dependencies> <dependency> <groupId>io.awspring.cloud</groupId> <artifactId>spring-cloud-aws</artifactId> <version>3.1.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 还要添加 Core 和 SQS starter 依赖:
<dependency> <groupId>io.awspring.cloud</groupId> <artifactId>spring-cloud-aws-starter-sqs</artifactId> </dependency> <dependency> <groupId>io.awspring.cloud</groupId> <artifactId>spring-cloud-aws-starter</artifactId> </dependency> 最后,添加测试所需的依赖,即带有 JUnit 5 的 LocalStack 和 TestContainers、用于验证异步消息消费的 awaitility 库,以及用于处理断言的 AssertJ: