resilience4j

jf666new發表於2024-10-22

目錄
  • 配置屬性說明
    • yaml
    • 註解

配置屬性說明

yaml

# 重試器配置
resilience4j.retry:
  instances:
    callback:
      # 最大重試次數
      maxAttempts: 5
      # 重試間隔的時間
      waitDuration: 10s
      # 表示在重試策略中啟用指數退避。這意味著在每次重試之間,重試操作的延遲將以指數級增長。
      enableExponentialBackoff: true
      # 指數退避的增長因子,每次重試的等待時間將是前一次等待時間的兩倍
      exponentialBackoffMultiplier: 2

註解


/**
* CircuitBreaker: 啟用斷路器模式,當 BACKEND_A發生故障,斷路器會開啟,防止後續請求繼續呼叫該服務;
Bulkhead: 啟用隔離模式,限制併發呼叫 BACKEND_A 的數量,防止資源耗盡;
@Retry(name = BACKEND_A):啟用重試機制,當呼叫 BACKEND_A 失敗時,會自動重試。
*/
 @CircuitBreaker(name = BACKEND_A)
    @Bulkhead(name = BACKEND_A)
    @Retry(name = BACKEND_A)
    public String failure() {
        throw new HttpServerErrorException(HttpStatus.INTERNAL_SERVER_ERROR, "This is a remote exception");
    }