W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
Retry
GatewayFilter Factory支持以下參數(shù)集:
retries
:應嘗試重試的次數(shù)statuses
:應重試的HTTP狀態(tài)代碼,用org.springframework.http.HttpStatus
表示methods
:應重試的HTTP方法,使用org.springframework.http.HttpMethod
表示series
:要重試的一系列狀態(tài)代碼,使用org.springframework.http.HttpStatus.Series
表示exceptions
:應重試引發(fā)的異常列表backoff
:為重試配置了指數(shù)補償。重試在退避間隔firstBackoff * (factor ^ n)
之后執(zhí)行,其中n
是迭代。如果配置了maxBackoff
,則應用的最大退避將被限制為maxBackoff
。如果basedOnPreviousValue
為true,將使用prevBackoff * factor
計算退避。如果啟用了Retry
過濾器,則會配置以下默認值:
retries
-3次series
— 5XX系列methods
— GET方法exceptions
-IOException
和TimeoutException
backoff
-已禁用application.yml。
spring: cloud: gateway: routes: - id: retry_test uri: http://localhost:8080/flakey predicates: - Host=*.retry.com filters: - name: Retry args: retries: 3 statuses: BAD_GATEWAY methods: GET,POST backoff: firstBackoff: 10ms maxBackoff: 50ms factor: 2 basedOnPreviousValue: false
當使用帶有forward:
前綴URL的重試過濾器時,應仔細編寫目標端點,以便在發(fā)生錯誤的情況下不會執(zhí)行任何可能導致響應發(fā)送到客戶端并提交的操作。例如,如果目標端點是帶注釋的控制器,則目標控制器方法不應返回帶有錯誤狀態(tài)代碼的ResponseEntity
。相反,它應該拋出一個Exception
,或者例如通過一個Mono.error(ex)
返回值來發(fā)出錯誤信號,可以將重試過濾器配置為通過重試來處理。
當將重試過濾器與任何具有主體的HTTP方法一起使用時,主體將被緩存,并且網(wǎng)關將受到內(nèi)存的限制。正文被緩存在ServerWebExchangeUtils.CACHED_REQUEST_BODY_ATTR
定義的請求屬性中。對象的類型是org.springframework.core.io.buffer.DataBuffer
。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: