重試和死信
本文介紹事件流支持的重試和死信策略。
重試策略
重試策略即任務(wù)處理過程中出現(xiàn)失敗時(shí)的重試方式,當(dāng)前重試策略支持退避重試和指數(shù)衰減重試。
退避重試(默認(rèn)):最大重試3次,每次重試的時(shí)間間隔為10秒到20秒之間的隨機(jī)值。
指數(shù)衰減重試:最大重試176次,每次重試的時(shí)間間隔指數(shù)遞增至512秒,總計(jì)重試時(shí)間為1天。每次重試的具體間隔為:1,2,4,8,...,512秒。
容錯(cuò)策略
容錯(cuò)策略即在錯(cuò)誤發(fā)生時(shí)的處理方式,目前支持兩類容錯(cuò)方式:
允許容錯(cuò)(推薦):允許異常容錯(cuò),當(dāng)異常發(fā)生時(shí)不會(huì)阻塞執(zhí)行,超過最大重試次數(shù)后會(huì)根據(jù)配置將消息投遞至死信隊(duì)列或直接丟棄。
禁止容錯(cuò):不允許容錯(cuò),當(dāng)異常發(fā)生并超過重試策略配置時(shí)會(huì)阻塞執(zhí)行。任務(wù)自動(dòng)切換為待啟動(dòng)狀態(tài)。
當(dāng)發(fā)生無法重試的錯(cuò)誤,例如資源信息配置錯(cuò)誤,此時(shí)任務(wù)會(huì)被置于啟動(dòng)失敗狀態(tài)。
死信隊(duì)列
死信隊(duì)列將以任務(wù)維度為依據(jù)進(jìn)行限制,當(dāng)發(fā)生無法處理或者超過重試次數(shù)的情況時(shí),會(huì)將失敗的原始數(shù)據(jù)原封不動(dòng)發(fā)送至消息隊(duì)列,該選項(xiàng)默認(rèn)為不啟用狀態(tài)。
當(dāng)前支持將死信發(fā)送至云消息隊(duì)列 RocketMQ 版、輕量消息隊(duì)列(原 MNS)、云消息隊(duì)列 Kafka 版和事件總線。