Circuit Breaker/Bulkhead/Retry Pattern 2026(サーキットブレーカー)
Resilience Design Pattern。Circuit Breaker (Closed/Open/Half-Open)・Bulkhead Isolation (Service Pool分離)・Retry+Exponential Backoff+Jitter・Timeout (Connect/Read/Total)・Throttling・Hystrix (Netflix Maintenance)・Resilience4j (Java)・Polly (.NET)・gobreaker (Go)・cenkalti/backoff・Sentinel (Alibaba)・Linkerd Retry+Circuit Breaker・Istio DestinationRule outlierDetection・¥0 OSS、2026年Service Mesh統合主流。
概要
Circuit Breaker、Bulkhead、Retry Pattern は、分散システムにおける耐障害性を高めるための設計パターンである。2026 年時点では、サービスメッシュ(Istio、Linkerd)や OSS ツール(Resilience4j、Sentinel、Polly)と統合され、ゼロ円で利用できる環境が整っている。これらのパターンは、外部サービスへの呼び出し失敗を検知し、回復策を自動で実行することで、全体の可用性を 99.999% 近辺に保つことを目的としている。
主な特徴・仕組み
- Circuit Breaker
- 3 状態(Closed、Open、Half‑Open)を持ち、失敗率が 5% を超えると Open 状態に移行。
- Open 状態は 5 秒間維持し、Half‑Open で 10 回の試行を許可。
- Bulkhead
- サービスを 4 つのリソースプールに分離し、1 つのプールが 20% の CPU を超えると他プールに影響を与えない。
- 1 プールあたり最大 1000 QPS を設定。
- Retry + Exponential Backoff + Jitter
- 最大 3 回リトライし、初回 100 ms、2 回目 200 ms、3 回目 400 ms の指数バックオフ。
- Jitter を ±10 % で乱数化し、リクエストの集中を防止。
- Timeout
- 接続タイムアウト 2 s、読み取りタイムアウト 3 s、総タイムアウト 5 s。
- Throttling
- 1 秒あたり 5000 リクエストを上限に設定し、ピーク時は 90% のスロットリング。
- Hystrix (Netflix)
- 2007 年から利用されているが、2025 年にサービスメッシュ統合が標準化。
- Resilience4j (Java)
- 1.0 バージョンで 100% のコードカバレッジを実現。
- Polly (.NET)
- 2026 年に AI ベースの自動リトライ戦略が追加。
- gobreaker (Go)
- 1.5k QPS のテストで 99.99% の成功率を示す。
- Sentinel (Alibaba)
- 2026 年に OSS で 0 円で提供されるようになり、国内外で採用が急増。
スペック比較表
| ライブラリ | 主な機能 | 最大 QPS | 失敗率閾値 | タイムアウト | 価格 |
|---|---|---|---|---|---|
| Resilience4j | Circuit + Bulkhead | 10,000 | 5% | 5 s | 無料 |
| Polly | Retry + Backoff | 8,000 | 4% | 5 s | 無料 |
| Sentinel | Circuit + Throttling | 12,000 | 3% | 5 s | 無料 |
具体例・対応製品
- Netflix Hystrix
- 2007 年にリリース、2025 年にサービスメッシュ統合を実装。
- Resilience4j
- Java 17 で動作、2026 年に AI ベースのリトライパターンが追加。
- Polly
- .NET 6 で利用可能、2026 年に 3 回のリトライと 400 ms の指数バックオフを標準化。
- Sentinel
- Alibaba Cloud のサービスメッシュに組み込まれ、2026 年に OSS で 0 円。
- Linkerd
- サービスメッシュに組み込まれ、Retry と Circuit Breaker を DestinationRule で設定可能。
自作PCでの選び方・注意点
- CPU コア数
- Bulkhead の分離に 4 コア以上を推奨。RTX 5090 で 8 コアを備えると余裕がある。
- メモリ容量
- 24 GB GDDR7 以上が望ましく、Circuit Breaker の状態保持に 512 MB 以上を確保。
- ネットワーク帯域
- 1 Gbps 以上を確保し、1 秒あたり 5000 リクエストを安定送信。
- 電源ユニット
- 650 W TDP 以上を備え、Ryzen 9 9950X3D で 450 W を確保。
- ソフトウェア互換性
- Java 17、.NET 6、Go 1.22 で動作する環境を整備。
関連用語との違い
- フォールトトレランス
- 失敗を許容する全体設計。Circuit Breaker はその中核を担う。
- レジリエンス
- システム全体の回復力。Bulkhead と Retry はレジリエンスを高める手段。
- スケーラビリティ
- 負荷増加に対応する拡張性。Circuit Breaker はスケール時に失敗を抑える。
よくある質問(FAQ)
Q1. Circuit Breaker はどのように状態を判定しますか?
A1. 失敗率が 5% を超えたら Open 状態に遷移し、5 秒間はリクエストをブロック。Half‑Open で 10 回の試行を行い、成功すれば Closed 状態に戻る。
Q2. Bulkhead を自作PCに適用するメリットは何ですか?
A2. 1 つのプロセスが 20% の CPU を超えると他プロセスに影響を与えないため、ゲームとバックグラウンドサービスを同時実行してもパフォーマンス低下を防げる。
Q3. 2026 年に OSS が 0 円で提供されると聞きましたが、実際に利用できますか?
A3. はい。Sentinel は 2026 年に OSS で 0 円となり、Alibaba Cloud 以外でも無料で導入可能。
まとめ
Circuit Breaker、Bulkhead、Retry Pattern は、サービスメッシュ統合と OSS の発展により、2025‑2026 年においてさらに標準化された耐障害設計手法となっている。自作PC でも CPU、メモリ、ネットワークを適切に選定し、これらのパターンを組み込むことで、ゲームプレイや開発環境を安定的に運用できる。これらのパターンを理解し、実装することで、システム全体の信頼性を 99.999% 近辺に保つことが可能である。