amazon-web-services - 将 aws sqs 用于不同的消息类型

标签 amazon-web-services java-8 amazon-sqs spring-jms

我在我的项目中使用 AWS SQS 和 Spring JMS。我有我的方法 @JmsListener(destination = "queue_name")。我想将此队列用于两种不同类型的消息。

由于此监听器已配置到此队列,因此它会接收两种类型的消息。我想要实现的是忽略一种类型的消息。 (发件人在向队列发送消息时添加 MessageAttribute)。那么,有没有一种方法可以忽略来自发件人 2 的消息,这样该方法就不会处理它们。

此外,我在此队列上设置了 DLQ,最大接收数为 5。因此,如果消息在前 5 次尝试中未得到处理,它将移至 DLQ。

请分享您的建议。

谢谢。

最佳答案

正确的解决方案是使用2个不同的队列; SQS 无法过滤由任何属性传递的消息,因此如您所见,当客户端读取消息但未对其进行处理时,它会更快地出现在您的 DLQ 中。

队列是免费的,所以拥有多个不会再收费。

关于amazon-web-services - 将 aws sqs 用于不同的消息类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46554051/

相关文章:

Java使用java函数表达式抽象出通用代码

java-8 - 我应该使用 Stream API 进行简单迭代吗?

amazon-sqs - 在达到可见性超时并且消息已重新排队后删除

ruby-on-rails - 在 Ruby 中创建 Amazon AWS SQS 队列时指定区域?

amazon-web-services - 如何使用 lambda 函数(不通过计划事件)处理 SQS 队列?

amazon-web-services - AWS CodeBuild 无法使用 CD 命令

node.js - 函数 Lambda 的权限被拒绝

java-8 - 从 ResultSet 获取日期以用于 java.time 类

java - 我在哪里可以找到适用于 Android 的亚马逊 S3 图像上传代码的工作示例

amazon-web-services - 使用 cloudformation 具有持久性请求的 Windows 现货实例