SQS:如何根据某个密钥将消息转发给订阅者
SQS: How to forward message to subscriber based on a certain key
我有一个验证服务,它接收验证请求并将它们发布到 SQS 队列。现在根据验证请求的类型,我想将消息转发到该特定服务。
所以基本上,我有一个生产者和多个消费者,但本质上,一条消息只能由一个消费者消费。
我应该使用什么方法?我应该为每项服务设置不同的 SQS 队列,还是可以使用基于消息类型的单个队列来实现?
在我看来,您有三个选择;
第一个选项,如您所说,是为每种消息类型设置唯一的使用者。这是我们使用的方法,我们有数千个队列和许多不同的消息类型。
第二个选项是用一些东西来装饰被推送到 SQS 的消息,表明它需要消费,然后在您的应用程序中有一个通用消费者可以将消息转发给正确的消费者.虽然这种方法通常被视为反模式,但我个人同意。
第三,您可以利用 SNS filtering,但前提是您现在使用 SNS,否则您将不得不投入一些时间来设置它并使其发挥作用。
希望对您有所帮助!
我有一个验证服务,它接收验证请求并将它们发布到 SQS 队列。现在根据验证请求的类型,我想将消息转发到该特定服务。
所以基本上,我有一个生产者和多个消费者,但本质上,一条消息只能由一个消费者消费。
我应该使用什么方法?我应该为每项服务设置不同的 SQS 队列,还是可以使用基于消息类型的单个队列来实现?
在我看来,您有三个选择;
第一个选项,如您所说,是为每种消息类型设置唯一的使用者。这是我们使用的方法,我们有数千个队列和许多不同的消息类型。
第二个选项是用一些东西来装饰被推送到 SQS 的消息,表明它需要消费,然后在您的应用程序中有一个通用消费者可以将消息转发给正确的消费者.虽然这种方法通常被视为反模式,但我个人同意。
第三,您可以利用 SNS filtering,但前提是您现在使用 SNS,否则您将不得不投入一些时间来设置它并使其发挥作用。
希望对您有所帮助!