【发布时间】:2022-06-16 00:43:40
【问题描述】:
我正在一个项目 Java 11/Spring boot 项目中工作,我需要发送和使用超过 256KB 的 SQS 消息,这是 SQS 的常见限制。我无法以消息小于 256KB 的方式更改系统建模。
我知道 AWS 通过使用其 SQS 扩展客户端库来支持更大的负载,可以在这里看到:https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-s3-messages.html#working-java-example-using-s3-for-large-sqs-messages-example
我复制并测试了发送消息的示例,但仍然不确定他在 Spring Boot 集成 (@SqsListener) 上使用此类消息的行为。该代码成功运行,但我不确定有效负载是否已在使用后在 S3 存储桶中被删除,因为我看不到消息存储在其中。示例中,删除消息需要手动完成,但我在运行代码时并没有编码。
Spring Boot @SqsListener 消费者是否已经设法在消费后删除消息,并使一切准备就绪,还是我需要管理一些东西?
【问题讨论】:
-
我猜客户端不会负责从 S3 中删除消息 - 它会从 SQS 中删除它们,但不会从 S3 中删除。这就是为什么在您的链接帖子中有
BucketLifecycleConfiguration的原因,该政策负责在 14 天后删除 S3 中的消息。
标签: java amazon-web-services spring-boot amazon-s3 amazon-sqs