SQS:如何根据某个密钥将消息转发给订阅者

时间:2018-05-24 10:10:52

标签: publish-subscribe amazon-sqs amazon-sns

我有一个验证服务,它接受验证请求并将它们发布到SQS队列。现在根据验证请求的类型,我想将消息转发给该特定服务。

基本上,我有一个生产者和多个消费者,但实际上,只有一个消费者会消费一条消息。

我应该使用什么方法?我是否应该为每个服务使用不同的SQS队列,或者我可以使用基于消息类型的单个队列来执行此操作?

1 个答案:

答案 0 :(得分:1)

在我看来,你有三个选择;

  1. 第一个选项,就像你说的那样,每个消息类型都有一个唯一的消费者。这是我们使用的方法,我们有数千个队列和许多不同的消息类型。

  2. 第二个选项是将正在推送到SQS上的消息装饰一些表明它需要消费的消息,然后在你的应用程序中有一个通用消费者,可以将消息转发给正确的消费者。虽然这种方法通常被视为反模式,但我个人同意。

  3. 第三,你可以利用SNS filtering,但这只是你现在正在使用SNS,否则你需要投入一段时间来设置它并让它发挥作用。

  4. 希望有所帮助!