在函式呼叫的過程中,可能有多種原因導致函式呼叫失敗。不同的錯誤型別以及呼叫方式(同步呼叫、非同步呼叫)都會影響重試策略。實際業務生產中,有很多開發者對這裡的策略有疑惑,本文將全面解讀 serverless 非同步佇列重試策略,並對多種使用場景提供相關的配置建議。
在函式呼叫的過程中,可能有多種原因導致函式呼叫失敗。錯誤型別分為以下幾類:
呼叫錯誤發生在函式實際執行前。以下情形均會產生呼叫錯誤:
執行錯誤發生在函式實際執行中。執行錯誤有以下情形:
函式平台的錯誤,例如 internal error。
不同錯誤型別以及呼叫方式(同步呼叫、非同步呼叫)都會影響重試策略。
同步呼叫包含 雲 api 觸發器 的同步呼叫、api 閘道器觸發器 及 ckafka 觸發器。
由於同步呼叫的過程中,錯誤資訊會直接返回給使用者,所以在同步呼叫中發生錯誤時,平台不會自動重試,重試策略(是否重試、重試幾次)均由呼叫方決定。
非同步呼叫包含 雲 api 觸發器 的非同步呼叫、cos 觸發器、定時觸發器 及 cmq topic 觸發器 等,具體觸發器呼叫型別請參考相關觸發器說明文件。
在新版重試策略中,開發者可以根據業務訴求在函式配置中修改和自定義預設的【重試次數】,【最長等待時間】配置,該配置只適用於非同步呼叫場景。
非同步呼叫發生各種錯誤型別的重試策略:
對**重入較敏感:
對**重入較敏感的場景,建議將重試次數調整為 0 即**報錯不會重試。
對事件處理實效性較高:
在事件處理實效性要求較高的場景下,並在一定時間範圍內進行重試的場景下,可配置事件最長保留事件來及時淘汰過期事件。保證錯誤重試的實效性。
併發超限場景:
併發超限(resourcelimitreached)指雲函式 scf 在同一時刻執行的併發數超過併發配額導致的函式報錯。併發超限分為同步呼叫、非同步呼叫兩種情況。
非同步呼叫併發超限時其處理邏輯由雲函式 scf 進行自動重試,在保留時間內併發超限不會導致如何資料丟棄。通常情況下非同步呼叫的併發超限使用者無需進行任何操作,在設定的最長等待時間內,函式平台會自動對併發超限錯誤進行重試。非同步呼叫中,如對實效性比較敏感可以通過配置保留併發來減少或降低超限對業務系統的影響,資料較重要可配置死信佇列兜底。
同步呼叫的過程中,錯誤資訊會直接返回給使用者。
使用 ServerLess 實現雲原生
筆者有幸經歷了 iaas os caas container 在這兩年又聽到了 faas funtion 這也是運維開發領域裡的第三個階段了吧,今天我將從乙個不懂得開發的系統工程師視角以及結合之前的幾篇系列文章為各位詮釋這個概念。一開始聽到 serverless 我以為是類似於 vps 建站主機 亦...
騰訊雲偷襲騰訊雲
43次攻擊全部失敗?e.m盯著電腦螢幕上的黑白 眉頭緊皺,陷入了沉思。按照計畫,這次應該是十拿九穩的定局。團隊在半個月內挖掘出的漏洞,原本是e.m最大的信心 根據掌握的情報,他畫了一張攻擊藍圖,而攻擊的起點正是對方的漏洞。如今,幾乎所有的漏洞都不能利用,讓這一場 秘密行動 陷入了僵局。時間回到九月份...
騰訊雲直播 呼叫騰訊雲RoomService
如果您只需要做乙個簡單的直播方案,也就是 主播推流 觀眾 文字互動,參考單場次直播,或者 自由開播 就可以解決問題。但是如果您要上連麥功能,單純依靠 txlivepusher 和 txliveplayer 兩個元件進行組合,那難度可就高了,為了降低這裡的實現難度,我們推出了liveroom元件,它分...