2017年11月22日 星期三

AWS SNS 的 Delivery Policy

在使用 SNS 時,需要考慮如果接收端處理 message 失敗了該怎麼辦?
如果沒有做特殊的設定,預設 SNS 是會直接走 Backoff Phase,重試三次、每次延遲 20 秒。

不過如果想要更多一點的重試,或者想設定比較複雜的行為,就需要稍微了解一下 SNS 的 Delivery Policy。

Delivery Policy

Immediate Retry Phase

如果一開始送訊息失敗了,會立刻重新傳送,這時是屬於這個階段。這個階段是由 Retries with no delay 來決定重試的次數。

Pre-Backoff Phase

立刻重送的階段若還是失敗了,會依照 Minimum delay retries 以及 Minimum delay 的設定,決定接下來要延遲多久、再重送幾次。

Backoff Phase

如果 Pre-Backoff 依然沒有成功傳送,在這個階段可以設定比較特殊的 delay 函式,函式的曲線圖如下:

Post-Backoff Phase

如果到 Backoff 階段依然沒有成功,剩下的 retry 次數會在這個階段依照 Maximum delay 的設定全部用完。

參考資料
  1. Delivery Policy

沒有留言: