コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

マイクロサービスにおけるサーキットブレーカーとは(簡易まとめ)

サーキットブレイカーって何それって言うときに説明するときのメモ

要約

複数のサービスから利用されるものの場合、使われる側のサービスは一定異常な稼働をし始めたら、使われないように切り離されるためのしくみ

例を交えて

サービスAにAPIリクエストを送って表示するサービスBがあるとする。

サービスAが正常稼働しているときは問題ないが、サービスBからのリクエストが増大してサービスAが応答不能になると、サービスB自体も反応が遅くなってくる。その状態になるとサービスAがそのまま応答がない状態なのに、さらにサービスBはリクエストを送り続けるので、サービスAの状況は悪化してしまう恐れがある。

そのため、サービスAとサービスBの間にサーキットブレイカーを入れる。

サーキットブレイカーを間に介在させると、サーキットブレイカーを通る過程で一定回数異常な状態が発生したときはサービスBからのリクエストをサーキットブレイカー側で遮断し、サーキットブレイカーが異常状態であるリクエストを送る。

そうすることで、サービスAが復旧するまでサーキットブレイカーが代理返答してくれるので、サービスBとしてはタイムアウトまで待たずとも正常に可動するようになる。

元ネタ

電気回路のブレーカーのこと。事故や故障で大きな電流が流れたときに自動的に遮断して配線を保護する機構のことを指す(らしい)。

関連リンク