处理的消息后SQS消息手动删除春季云AWS(1.0.0.RC2)当前实现SimpleMessageListenerContainer一样类的似乎是消息处理程序处理完消息和方法调用返回后自动删除邮件。spring-cloud-aws。成功地
在我们的应用,我们需要能够处理的消息,并从上游SQS队列中删除该消息之前从下行队列等待异步确认。像
东西收到SQS味精 - >进程味精 - >发布味精的RabbitMQ(线程在这里完成)
删除SQS味精< - 我们的应用程序< - RabbitMQ的消息成功确认(异步)
由于msg ack通过不同的线程异步回来,一旦我们检查了成功ack,我们需要选择手动从SQS中删除msg。
理想情况下,SimpleMessageListener应该是可配置为哪个模式它在运行时(自动删除或手动删除)。
我们很愿意使用Spring的AWS云LIB(VS推出我们自己)与SQS集成,因为它已经负责监听器容器中的Bean的生命周期管理。
请让我知道,如果上述建议的功能被认为是可行的,如果是这样,当它可以实现和释放。
谢谢。
当自动删除功能被完全禁用时,应用程序有责任处理消息重复。我认为这是一个合理的权衡。通过这种方式,它为应用程序提供了对消息生命周期的更多控制。这同样适用于处理有毒消息。通过中毒消息,我的意思是如果JSON负载无效或内容损坏,应用程序应该有机会决定如何处理消息(删除或死信)。 – larryl 2015-02-11 00:59:13