SQS即Simple Queue Service, 是一個分布式的消息隊列服務,使用它很easy,消息隊列服務能夠用來buffer burst, 使整個服務異步處理,不要求組件始終可用.
開發者最初使用 Amazon SQS 時僅僅需用到五個 API:
CreateQueue、SendMessage、ReceiveMessage、ChangeMessageVisibility 和 DeleteMessage。
Amazon SQS 會盡量保持消息順序,可是由于隊列的分布式特性,它無法保證消息的先后順序。也正是由于舍棄了這些特性,才得以保持了SQS的可擴展性。
每一個 Amazon SQS 隊列都具有可配置的可見性超時(Default Visibility Timeout)。在從隊列中讀取消息后的指定時間內,該消息對其它讀取者保持不可見。僅僅要消息的處理時間短于可見性超時,每條消息都會得以處理并刪除。假設處理消息的組件出現失敗或不可用,可見性超時結束后該消息即對讀取該隊列的不論什么組件可見。這同意多個組件同一時候從同一隊列中讀取消息,每一個組件負責處理不同的消息, 所以這個特性須要應用是冪等的。
在 Amazon SQS 返回消息給您時,該消息會保存在隊列中,不管實際上您是否收到該消息。您要負責刪除該消息;刪除請求可確認您已處理了該消息。假設您不刪除消息,Amazon SQS 將在還有一個接收請求中遞送該消息。
所以這樣情況也是有可能發生的,因為分布式 Amazon SQS 系統中的某臺server在運行刪除時不可用,DeleteMessage 操作未能刪除消息的全部副本。該消息副本可能會被再次遞送,所以在設計應用程序時,要考慮此,以便再次收到已刪除的消息時不會出現錯誤或不一致。?
?假設連續 30 天以上時間沒有針對某個隊列簽發下面不論什么請求,SQS有可能刪除該隊列:SendMessage、ReceiveMessage、DeleteMessage、GetQueueAttributes 和 SetQueueAttributes。設計應用程序時應將此考慮在內。?
原文: http://blog.csdn.net/hongchangfirst/article/details/25870323
作者: hongchangfirst
hongchangfirst的主頁: http://blog.csdn.net/hongchangfirst
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
