一覧に戻る
Lv.2

サーキットブレーカー

Circuit Breaker

システムの一部で起きた障害が全体に広がるのを防ぐために処理を遮断する仕組み。

簡単に説明すると

サーキットブレーカーっていうのは、Webサービスやアプリの一部で障害が起きたとき、その場所との通信を一時的に止めてシステム全体が動かなくなるのを防ぐ仕組みのことなんだ。 複数のシステムが連携して動くWebサイトなどで使われているよ。 どこか1つのサーバーでトラブルが起きたとき、何度もリクエストを送ると相手の負荷が増えてシステム全体がダウンする原因になるんだ。 サーキットブレーカーが通信を遮断することで、問題が解決するまで無駄な負荷をかけずにサービス全体を守ることができるよ。

名前のヒミツ

英語のCircuitとBreakerを組み合わせた言葉なんだよ。Circuitは回路、Breakerは遮断器という意味で、元々は電気回路に危険な電流が流れたときに自動で電気を止める安全装置のことなんだ。ITの世界でも、システムの一部で起きた障害が全体へ広がるのを自動で遮断して防ぐ仕組みとして使われているよ。

くわしく見てみよう!

サーキットブレーカーとは、システムの一部で発生した障害がシステム全体に伝染するのを防ぐ設計パターンのことなんだ。
障害が発生している機能へのアクセスを自動で遮断して、エラーをすぐに返すことで他の正常な機能への影響を最小限に抑えるよ。

たとえば、連携している外部サービスやデータベースが反応しなくなったとき、通常なら何度も接続を試みて待機時間が伸びてしまうんだ。
サーキットブレーカーを挟むと、異常を検知した時点で接続の試行を即座にやめて、システム全体の応答が遅くなるのを防いでくれるよ。

状態は主にクローズ、オープン、ハーフオープンの3つで管理されるよ。
通常時は通信を通すクローズ状態で、エラーが一定数を超えると通信を遮断するオープン状態に変わるんだ。
一定時間が経過するとハーフオープン状態になって少しだけ通信を試し、復旧が確認できれば元のクローズ状態に戻る仕組みになっているよ。