Amazon SQS簡單介紹 上篇

2021-09-06 21:35:34 字數 1016 閱讀 5525

sqs即****** 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。設計應用程式時應將此考慮在內。 

原文:hongchangfirst

hongchangfirst的主頁:

簡單解析json資料(接上篇建立json資料)

解析json資料 接上篇 建立json資料 1.先了解json資料格式 值,值,2.建立 jsonobject 與 jsonarray 物件 傳入 資料,例 string msg 若msg是遇到 jsonobject jsonobjcet jsonarray.getjsonobject key 值,...

xgboost簡單介紹 xgboost介紹

xgboost是華盛頓大學博士陳天奇創造的乙個梯度提公升 gradient boosting 的開源框架。至今可以算是各種資料比賽中的大殺器,被大家廣泛地運用。接下來,就簡單介紹一下xgboost和普通的gbdt相比,有什麼不同。何為gradient boosting,gbdt請看我上篇文章 1.梯...

mysql的簡單介紹 mysql的簡單介紹

mysql的簡單介紹 資料庫的內部鏈結 1 連線管理器 使用者或應用程式連線 2 分析器 3 快取區4 優化器 優化器執行的結果交由儲存引擎,再轉向物理層 表空間 myisam每個表有三個檔案 frm 表結構 myd 表資料 myi 表索引 innodb 所有表空間再乙個檔案 資料庫失敗的原因 1 ...