OSS探訪GitHubでログイン

Javaの外部呼び出しに遮断・再試行・流量制限を組み込む耐障害ライブラリ

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
10,776
主要言語
Java
ライセンス
Apache-2.0
リポジトリ最終更新
2026/09/23
ページ内ナビ

概要

Javaアプリケーションから外部サービスを呼ぶ際に、障害の連鎖を抑えるためのライブラリです。CircuitBreaker、Retry、RateLimiter、Bulkhead、TimeLimiterを必要な分だけ選び、ラムダ式やメソッド参照へ重ねて適用できます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

必要な耐障害パターンを呼び出し単位で重ねる

高階関数のデコレーターとしてCircuitBreaker、Retry、RateLimiter、Bulkheadを適用できます。複数のデコレーターを一つの呼び出しに重ね、例外時の代替処理や非同期処理のタイムアウトも構成できます。

出典:[1]

用途に合うモジュールだけを依存関係へ加える

コア機能は遮断、流量制限、同時実行数の制限、再試行、タイムアウト、結果キャッシュに分かれています。Spring Boot、Micrometer、Feign、Kotlinなどの連携モジュールもあり、アプリケーションの構成に合わせて選べます。

出典:[1]

向いている用途

複数の外部サービスを別々の障害領域として守る

決済、在庫、通知など複数の外部サービスを呼ぶJavaアプリケーションに向きます。公式READMEは保護対象ごとに固有のインスタンスを作るよう勧めており、障害状態、しきい値、同時実行数、メトリクスをサービス間で混ぜずに管理できます。

出典:[1]

導入前の確認

Java版とデコレーターの実行順を先に固定する

v2.4.0のbuild.gradleはJavaのsourceCompatibilityとtargetCompatibilityを17に設定し、同梱WrapperはGradle 8.10を使います。ソース検証ではGradle 8.10を起動し、Java 17向けにコンパイルできるJDK環境を用意してください。READMEはResilience4j 3にJava 21が必要とも明記しています。Spring Boot 3では既定のAspect OrderによりRetryがCircuitBreakerの外側で動く場合があるため、順序の明示設定も必要です。

出典:[1][3][4][2]

参考にした公式資料

  1. [1]Resilience4j v2.4.0 README(2026-10-04)
  2. [2]Resilience4j v2.4.0 Spring Boot 3 README(2026-10-04)
  3. [3]Resilience4j v2.4.0 Gradle build configuration(2026-10-04)
  4. [4]Resilience4j v2.4.0 Gradle Wrapper configuration(2026-10-04)
  5. [5]Resilience4j v2.4.0 release(2026-10-04)
  6. [6]Resilience4j GitHub repository metadata(2026-10-04)
  7. [7]Resilience4j v2.4.0 license(2026-10-04)
編集部からの補足

比較時は機能数だけでなく、保護対象ごとに状態とメトリクスを分離できるかを確認したいライブラリです。Spring BootではRetryとCircuitBreakerの実行順も設計レビューに含めてください。

3ステップで試す

  1. 1

    v2.4.0のソースを取得する

    固定タグを浅く取得し、以降のGradle Wrapperコマンドを同じディレクトリで実行します。

    git clone --depth 1 --branch v2.4.0 https://github.com/resilience4j/resilience4j.git && cd resilience4j
  2. 2

    JDKとWrapperを確認してCircuitBreakerをテストする

    v2.4.0はGradle 8.10のWrapperを同梱し、Java 17向けにコンパイルします。JDK 17で実行環境を確認してから遮断機能のテストを実行します。

    java -version && ./gradlew --version && ./gradlew :resilience4j-circuitbreaker:test
  3. 3

    Retryのテストを実行する

    同じチェックアウトで再試行モジュールのテストも実行し、二つの独立した機能を確認します。

    ./gradlew :resilience4j-retry:test
公式READMEで確認

成長

成長の推移 · 直近30日

10,776 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
4
Open PR
57

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • resilience
  • circuitbreaker
  • rate-limiter
  • retry
  • bulkhead
  • metrics
Stars
10,776
Forks
1,514
Watchers
215
Open Issues
261
Contributors
241
所有者種別
Organization
主要言語
Java
ライセンス
Apache-2.0
リポジトリ最終更新
2026/09/23

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?