- Serverless從入門到進階:架構、原理與實踐
- 方坤丁 孫遠高
- 561字
- 2021-06-24 11:19:08
3.2 錯誤處理和重試機制
FaaS平臺有可能會出現不同類型的錯誤,主要分為運行錯誤和調用錯誤(同步調用、異步調用)。根據不同的錯誤類型,重試機制也會有所差異。本節(jié)主要分析FaaS平臺對應的錯誤類型和重試策略。
1. 錯誤類型
FaaS平臺的錯誤類型說明如下。
- 調用錯誤:調用請求被拒絕時報錯,該類型的錯誤發(fā)生在函數實際執(zhí)行之前。常見的調用錯誤如并發(fā)超出平臺限制、調用方無權限、調用請求傳參不符合要求等。
- 運行錯誤:函數的業(yè)務代碼或運行環(huán)境返回錯誤。運行錯誤主要發(fā)生在函數的實際執(zhí)行中。常見的運行錯誤有用戶代碼運行的異常、函數運行環(huán)境發(fā)現并拋出的異常等。
2. 重試機制
針對同步的調用錯誤,平臺方不會重試,而是直接將錯誤信息返回給用戶,重試策略主要由調用方決定。針對異步調用錯誤,如超限,平臺會持續(xù)重試24小時,重試的間隔按照指數退避增加到1小時。超過24小時仍調用失敗,則將本次調用的返回結果存入死信隊列或丟棄。
針對運行錯誤中用戶代碼或運行環(huán)境錯誤,平臺會自動重試,一般會做間隔分鐘級別的兩次重試。在三次重試失敗后,錯誤事件將被存入死信隊列或丟棄。
為了方便用戶對錯誤信息進行收集和重試,各云平臺也提供了死信隊列等產品化策略,用于收集錯誤事件,分析失敗原因。此外,為了更好地收集和分析錯誤請求,用戶也可以針對調用方配置監(jiān)控告警,感知函數配置日志服務,及時處理和分析錯誤。
推薦閱讀
- Facebook Application Development with Graph API Cookbook
- Building Modern Web Applications Using Angular
- Eclipse Plug-in Development:Beginner's Guide(Second Edition)
- 西門子S7-200 SMART PLC編程從入門到實踐
- Visual Basic程序設計上機實驗教程
- Java Web開發(fā)就該這樣學
- Learning AWS
- Go語言編程
- HTML5+CSS3+jQuery Mobile APP與移動網站設計從入門到精通
- SQL Server 2016 從入門到實戰(zhàn)(視頻教學版)
- R語言:邁向大數據之路(加強版)
- Python函數式編程(第2版)
- 深度學習入門:基于Python的理論與實現
- 視窗軟件設計和開發(fā)自動化:可視化D++語言
- MySQL數據庫應用實戰(zhàn)教程(慕課版)