1. 程式人生 > >在Python中使用aws的sns和sqs

在Python中使用aws的sns和sqs

github scribe bsp 情況下 分布式 int 方法 test devel

首先,sns = Simple Notification Service,sqs = Simple Queue Service

sns與sqs有什麽不同?

(ref:https://stackoverflow.com/questions/13681213/what-is-the-difference-between-amazon-sns-and-amazon-sqs)

sns是分布式發布-訂閱系統,一旦publisher發布了,subscriber那邊立刻能接收到。

sns的訂閱者(end point)可以是郵件,sms,甚至是sqs,通常用於subscriber數量未知的情況

sqs是分布式的隊列系統,message不默認推送到subscriber那裏。

subscriber得到message需要輪詢(polling)。

一旦某個subscriber接收、處理或者刪除這個message,其他的訂閱者就不會收到同樣的message了

怎樣使用sns?(ref:https://gist.github.com/stuartmyles/8099723)

在保證aws的key正確一致的情況下,還要保證publisher和subscriber的目標是同一個topic

怎樣使用sqs?(ref:https://aws.amazon.com/cn/blogs/developer/using-python-and-amazon-sqs-fifo-queues-to-preserve-message-sequencing/)

使用sqs需要創建(https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-getting-started.html),需要保證aws的key與發送者key的準確一致QueueName也要一致

也可以讓sns充當publisher,用sqs接收。這種情況下,需要使用 set_attributes 方法(ref:https://aws.amazon.com/cn/blogs/developer/subscribing-an-sqs-queue-to-an-sns-topic/, https://docs.aws.amazon.com/sns/latest/dg/SendMessageToSQS.html)

在Python中使用aws的sns和sqs