You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

问题:SqsListener无法接收SQS队列消息,发送功能正常

问题分析与解决方案:SQS消息接收失效但发送正常

1. 核心问题:依赖版本不兼容

你混合使用了Spring Cloud AWS 3.x(spring-cloud-aws-starter:3.0.0-M1)和2.x(spring-cloud-aws-messaging:2.4.2)版本,两者分别基于AWS SDK v2和v1,API不兼容,直接导致@SqsListener无法正常初始化和连接队列。

解决办法:统一依赖版本
选一个版本系列,移除冲突依赖:

  • 若使用3.x版本(推荐,基于SDK v2):只保留starter依赖即可,它已包含messaging模块
<dependency>
    <groupId>io.awspring.cloud</groupId>
    <artifactId>spring-cloud-aws-starter</artifactId>
    <version>3.0.0-M1</version>
</dependency>
  • 若使用2.x版本:统一降级到对应starter版本
<dependency>
    <groupId>io.awspring.cloud</groupId>
    <artifactId>spring-cloud-aws-starter</artifactId>
    <version>2.4.2</version>
</dependency>

2. 配置类适配对应SDK版本

  • 如果用3.x版本(SDK v2):原AmazonSQSAsync是SDK v1的类,需替换为SqsAsyncClient,修改配置类:
@Configuration
public class SQSConfig {
    @Value("${cloud.aws.credentials.access-key}")
    private String accessKey;
    @Value("${cloud.aws.credentials.secret-key}")
    private String secretKey;
    @Value("${cloud.aws.region.static}")
    private String region;

    @Bean
    public SqsAsyncClient sqsAsyncClient() {
        return SqsAsyncClient.builder()
                .region(Region.of(region))
                .credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(accessKey, secretKey)))
                .build();
    }

    @Bean
    public QueueMessagingTemplate queueMessagingTemplate(SqsAsyncClient sqsAsyncClient) {
        return new QueueMessagingTemplate(sqsAsyncClient);
    }
}
  • 如果用2.x版本(SDK v1):原配置类可以保留,但要移除aws-core:2.17.251这类SDK v2的冲突依赖。

3. 确保消费者Bean被Spring扫描

检查@SqsListener所在的类是否添加了@Component、@Service等Spring组件注解,否则Spring无法识别并初始化监听容器。

4. 队列与权限验证

  • 确认AWS控制台中存在名称为AcheevGameQueue的队列,且区域与配置的cloud.aws.region.static一致。
  • 检查当前AWS凭证是否拥有sqs:ReceiveMessage、sqs:DeleteMessage权限(发送正常仅说明有sqs:SendMessage权限,接收需要额外权限)。

内容的提问来源于stack exchange,提问作者DLarcom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 10:57:42