家庭やビジネスにおいて、急な電気系統の故障は大きな被害をもたらし、事故や火災の原因となることがあります。電気設備では、ヒューズ、サージアレスタ、サーキットブレーカーなどの保護措置がこれらの事故を防ぐために用いられています。
本記事では、本装置の動作や重要性、市場における各種の取り扱いなど、安全に関する情報を説明します.
サーキットブレーカーの仕様:手動または自動で、通常時と異常時の双方において回路を組み立てたり、電流を通したり、遮断したりする装置です。通常時は回路を閉じて電流を流し、異常時は限られた時間だけ回路を開いて電流を止めることができます。
以下はサーキットブレーカーの特徴の一部です:
これらの特性により、さまざまな種類のサーキットブレーカーが、電気システムを守り制御する優れた手段となっています.
サーキットブレーカーには多くの種類があり、通常は外部呼び出しの失敗を監視するアプリのプロキシとして実装され、以下の操作が可能となります。下記のように、プロキシは状態機として動作するよう設定されています:
サーキットブレーカーマイクロサービスアーキテクチャにおいて、このパターンがどのように利用されるか、具体例を見て理解を深めよう。
例えば、マイクロサービスを利用するアプリ内に5種類のサービスが存在するとする。サーバは各リクエストに対し、指定サービスを呼び出すために1つのスレッドを割り当てる。しかし、エラーによりサービスの処理が遅れ、スレッドが待機状態となる。1サービスにつき1スレッドの待機であれば問題ないが、高需要のサービスでは、後で他のスレッドが待たされる恐れがある。
その結果、まだ処理されていないリクエストはキューに並ぶか停止します。サービスが回復しても、ウェブサーバはキュー内のリクエスト処理に追われ、常に過負荷状態になって回復が困難となります。将来的に連鎖的な障害が発生し、サービスやシステム全体がクラッシュする可能性があるのです。
上記の例は、サーキットブレーカーパターンの利用方法を示しています。仮に、あるサービスが200ミリ秒以内に反応する必要があると判断された場合、大量の問い合わせはそのサービスの高需要を意味します。問い合わせの75%が150〜200ミリ秒の遅延を超えると障害の前兆と考えられ、複数の問い合わせが200ミリ秒を超えるとサービスは応答しなくなり、一時的な停止を通知することになります。先に説明した通り、これは「閉状態」から「開状態」への移行です。
そのため、該当サービスへの問い合わせはキューに並ばなくなりますが、一定時間後にサーキットブレーカーが静かに当該サービスへpingを送るようになります。つまり、サーキットブレーカーパターンは現在「半開状態」にあり、初回の問い合わせが成功すれば同サービスへのリクエストが再び許可されます。
このように、サーキットブレーカーパターンはマイクロサービスアーキテクチャの障害耐性および回復力を高め、1つのマイクロサービスの障害が他へ波及するのを防ぐために利用できます。
Netflixのエンジニアが開発したHystrixは、HTTPリクエストを介して多数のノードを連携させる分散システムの安定性向上を目的としたオープンソースライブラリです。
これはサーキットブレーカーデザインパターンを利用して実現されます。
Resilience4Jは関数型プログラミングの原則に基づいて構築された独立したライブラリです。Hystrixのオブジェクト指向アプローチとは異なり、必要なデコレータだけを積み重ねることができ、依存関係も少なく、例えばサーキットブレーカーパターンを閉じるために必要な最小成功回数など、より細かな設定が可能です.
最新情報を購読