カスケード障害とサーキットブレーカーの様子をPlantUMLで作成しました。
この図を含んだブログ記事も記載しているので、興味あるかたは以下からどうぞ。
すごいよ、サーキットブレーカー! 〜 マイクロサービスアーキテクチャの設計パターン 〜 - ふじやまエッグの日々
カスケード障害
最初は局所的な障害が、だんだんとネットワーク全体に障害が連鎖していきます。それがカスケード障害です。そんな展開を以降の図で表現しています。
サーキットブレーカーによる解決
サーキットブレーカーを導入することで、障害が発生したとしても、連鎖させずに止めることができます。
正常時は、回路(Circuit)は、閉じていますが(Closed)、リクエスト先のサービスに障害が発生するとサーキットブレーカー(Circuit Breaker)を発動させ、回路を開きます(Open)。
最後に
サーキットブレーカーは、ネットワーク全体に甚大な被害をもたらしかねないカスケード障害を食い止める、設計パターンです。 マイクロサービスアーキテクチャには、なくてはならない機構です。そんなサーキットブレーカーのありがたさを以下の記事にまとめているので、興味あるかたはぜひどうぞ。