2017-02-27 101 views

回答

2

一對夫婦的想法:

使用發佈/訂閱

考慮使用與SNS/SQS發行者 - 訂閱模式,使您發佈一條消息,SNS,並通過SQS訂閱它。如果您絕對需要在發佈消息時處理消息,則可以發佈到SNS併除SQS訂閱(例如調用Rest API的lambda subscriber)之外設置另一個消費者來處理它。

SQS長輪詢

關於SQS,這聽起來像你會從長輪詢中受益。從文檔:

長輪詢有助於減少 (空響應的數量減少你使用Amazon SQS的費用時,有沒有提供給回覆發送到亞馬遜SQS 一個ReceiveMessage請求 返回消息隊列),並消除錯誤空應答(當消息是 在隊列中可用的但不包括在響應):

  • 長輪詢通過允許亞馬遜 減少的空響應的數量SQS等到消息在曲中可用eue在發送 響應之前。除非連接超時,否則對ReceiveMessage請求的響應至少包含一個可用的 消息,最多包含 ReceiveMessage操作中指定的最大消息數。
  • 長查詢通過查詢所有(而不是有限數量)的服務器消除虛假的空響應。
  • 只要有任何消息可用,長輪詢就會返回消息。
從文檔

另外,以編程方式啓用長輪詢,使用下列任何這些SQS操作:

參考:

1

聽起來像是你將用很多替代SQS SNS的更好。你正在試圖獲得SQS做,SNS的目的是要做到:

您可以使用Amazon SNS通知消息發送給一個或多個 HTTP或HTTPS端點。當您向某個主題訂閱端點時,您可以發佈通知到該主題,Amazon SNS會發送一個 HTTP POST請求,將通知內容傳遞給 訂閱端點。訂閱端點時,您選擇 無論Amazon SNS使用HTTP還是HTTPS將POST請求發送到端點 。如果使用HTTPS,那麼你可以採取的支持 在亞馬遜SNS以下的優點...

http://docs.aws.amazon.com/sns/latest/dg/SendMessageToHttp.html