サーキットブレーカーとは?
さーきっとぶれーかー
サーキットブレーカーとは、システムの障害や過負荷を検知した際に、連鎖的な障害の拡大を防ぐために接続を自動的に遮断する設計パターンです。
サーキットブレーカー(Circuit Breaker)とは、分散システムやマイクロサービスアーキテクチャにおいて、特定のサービスや外部リソースへの呼び出しが繰り返し失敗する状況を検知し、一定時間その接続を遮断することで、システム全体への障害波及を防ぐ設計パターンです。電気回路の「ブレーカー(遮断器)」になぞらえて命名されています。
サーキットブレーカーは一般に、以下の3つの状態を遷移します。
- クローズ(Closed):正常状態。リクエストは通常どおり通過する
- オープン(Open):障害検知後の遮断状態。リクエストを即座に失敗応答させ、障害サービスへの呼び出しを止める
- ハーフオープン(Half-Open):一定時間後に試験的にリクエストを通し、復旧を確認する状態
このパターンにより、障害が発生したサービスへのリクエストが際限なく積み上がることを防ぎ、タイムアウト待ちによるリソース枯渇やカスケード障害(連鎖障害)を回避できます。NetflixのHystrixやResilience4jなどのライブラリがサーキットブレーカーの実装として広く使われてきました。
なお「サーキットブレーカー」は証券取引所における相場急変時の取引停止措置も指しますが、IT分野では主にこのソフトウェアパターンを意味します。
使い方・例文
マイクロサービス構成のWebアプリケーションで、決済サービスへの接続が相次いで失敗し始めたとき、サーキットブレーカーが発動してエラーレスポンスをすぐ返し、他のサービスへの影響を食い止める場面で活用されます。
この用語をシェア
最終更新: