Open3

Spring Boot × Resilience4j でCircuitBreakerとbulkheadを試す

yocyoc

/actuator/health でサーキットブレーカーのステータスを確認する方法

circuitbreakerの設定毎に registerHealthIndicator: true を追加する

resilience4j:
  circuitbreaker:
    instances:
      backendA:
        # 追加が必要
        registerHealthIndicator: true

/actuator/health で確認できるように management の設定を追加

management:
  endpoint:
    health:
      show-details: always
  health:
    circuitbreakers:
      enabled: true
yocyoc

実装方法

コード

プロパティの意味については公式ドキュメントを参照
https://resilience4j.readme.io/docs/circuitbreaker#create-and-configure-a-circuitbreaker

resilience4j:
  circuitbreaker:
    instances:
      backendA:
        registerHealthIndicator: true
        # デフォルト60000[ms]
        waitDurationInOpenState: 10000
        # デフォルト60000[ms]
        slowCallDurationThreshold: 5000

application.yml で定義した backendA という設定を利用する場合
@CircuitBreaker(name = "backendA") というアノテーションをクラスに付与するだけでCircuitBreakerが有効になる。

参考にした記事

https://qiita.com/d-yosh/items/31fad6b4f6a9bb518e6d#spring-aop
https://zenn.dev/yuta_saito/articles/0e9fc3c9100845