Routing messages from Amazon SNS to SQS with filtering

后端 未结 2 859
南笙
南笙 2021-02-07 11:03

In RabbitMQ, one can create an exchange, then bind it to multiple queues, each with a routing key. This enables messaging architectures like this:

           mes         


        
相关标签:
2条回答
  • 2021-02-07 11:18

    This is possible by using message attribute filtering in SNS. After you subscribe different SQS queues to an SNS topic, you can specify attributes to filter on by using the SNS API SetSubscriptionAttributes. This will allow messages with different attributes to get routed to the correct SQS queue.

    This is also not limited to SQS queues but any subscription sources on a SNS topic. For example, a single SNS topic can publishing one set of messages to Lambda, and another set to SQS.

    SDK Reference: http://docs.aws.amazon.com/sns/latest/api/API_SetSubscriptionAttributes.html

    More details are given here with examples: https://aws.amazon.com/blogs/compute/simplify-pubsub-messaging-with-amazon-sns-message-filtering/

    0 讨论(0)
  • 2021-02-07 11:24

    EDIT

    I cannot delete an accepted answer, so see the answer below for the now correct answer since this feature has been released.

    Original (now incorrect) Answer (for posterity):

    No it's not possible. Would be a great feature for them to add though.

    The only alternative I know is to create a topic for each routing rule and then publish to the correct topic. It's not pretty, but it accomplishes the task. If you have a lot of rules, you might need more than the 3000 topics they allow. You can request an increase in topic limit from AWS on their website by following the instructions here http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_ses_quota.

    0 讨论(0)
提交回复
热议问题