【发布时间】:2025-12-12 02:05:01
【问题描述】:
我在 java spring boot 项目中使用 SQS,方式如下:
@Bean
public SimpleMessageListenerContainerFactory simpleMessageListenerContainerFactory(AmazonSQSAsync amazonSqs) {
SimpleMessageListenerContainerFactory factory = new SimpleMessageListenerContainerFactory();
factory.setAmazonSqs(amazonSqs);
factory.setMaxNumberOfMessages(1);
factory.setWaitTimeOut(20);
return factory;
}
我得到无序数据并检查了SimpleMessageListenerContainer 日志,似乎当ApproximateReceiveCount = 2 得到无序数据时。我认为通过设置 factory.setMaxNumberOfMessages(1); 我只会收到 1 条消息,然后 ApproximateReceiveCount = 2 是不可能的,它的值只会是 1。有没有办法强制 ApproximateReceiveCount 为 1?我可以通过设置setMaxNumberOfMessages 来做到这一点,还是应该以不同的方式做到这一点?
任何建议将不胜感激!
【问题讨论】:
标签: java amazon-web-services spring-boot amazon-sqs