我有一个验证服务,它接受验证请求并将它们发布到SQS队列。现在根据验证请求的类型,我想将消息转发给该特定服务。
基本上,我有一个生产者和多个消费者,但实际上,只有一个消费者会消费一条消息。
我应该使用什么方法?我是否应该为每个服务使用不同的SQS队列,或者我可以使用基于消息类型的单个队列来执行此操作?
答案 0 :(得分:1)
在我看来,你有三个选择;
第一个选项,就像你说的那样,每个消息类型都有一个唯一的消费者。这是我们使用的方法,我们有数千个队列和许多不同的消息类型。
第二个选项是将正在推送到SQS上的消息装饰一些表明它需要消费的消息,然后在你的应用程序中有一个通用消费者,可以将消息转发给正确的消费者。虽然这种方法通常被视为反模式,但我个人同意。
第三,你可以利用SNS filtering,但这只是你现在正在使用SNS,否则你需要投入一段时间来设置它并让它发挥作用。
希望有所帮助!