Circuit Breaker
コンポーネント間の呼び出しで呼ばれる側が要求に応じきれていない場合に全ての要求を失敗扱いにすること.
要求に応じていないという状態をより顕著にすることでそれへの対応がより早くなされるように持っていく.
動作イメージ
1. A -> B の呼び出しで B の負荷が高まって要求に応えきれない
2. circuit breaker の作動により,Bの残存処理能力にかかわらず全要求が失敗扱いになる
3. 失敗が多発することにより
alert がなって対応のオペレーションが入る
metrics-based の autoscaling が入って B の処理能力が向上する
circuit breaker は 1 から 3 までの所要時間を,エラー発生をより顕著にすることで短縮することを目的とする.
B に適切な backpressure (処理能力不足を自認して能動的に要求を断る) が実装されていたら必ずしも circuit breaking は必要ない.