Hystrixを説明してみた


Hystrixとは

Netflixが開発したOSSで、Circuit Breakerの実装。
Circuit Breakerとは、マイクロサービスで開発されたアプリケーション同士が、一つのアプリの障害で連鎖的に障害を発生させる状態を防止するための、ブレーカー的役割をする機能のこと。

後続のアプリケーションが障害を起こした場合、当該アプリで即エラーを返すことでリクエストの流入を抑える。

例えば、一番後続のアプリが障害を起こして、応答がなくなる。

リクエストが流れ続けるため、障害を起こしたアプリを呼び出す前段のアプリが引きずられ、スレッド枯渇やGC頻発による応答不能が発生する(ことがある)。

さらに、これを呼び出すアプリが同様に障害を起こすことで、正常なアプリへの呼び出しも行われなくなり、全体が障害となってしまう。

もし、Hystrixがアプリに組み込まれていた場合。

やはり、最下層のアプリに障害が発生し。。。

しかし、前段のアプリで、障害を検知して後続が障害の場合のロジックを通って

これによって、後続が障害により連続でエラーを返す状態になった場合にも、後続へのリクエストを中止し、負荷をかけないようにしたうえで、異常状態の対処を行う。

これが相当に便利であり、しかも後続への無駄な負荷をかけずにすむという代物でした。

今回はここまで。