1.ヒューズHystrix
1.1はじめに
Hystrix
は英語でヤマアラシを意味します。その
ロゴ
は下の写真のヤマアラシです。これはマイクロサービスシステムの保護メカニズムを提供するグループです。
ソフトウェアは
、同じよう
ユーレカ、またによって開発され
netflflix
会社。
ホームページ:
https :
//github.com/Netflflix/Hystrix/
では
、
Hystrix
の役割は何ですか?何を守るべきですか?
Hystrix
は
、
Netflflix
によってオープンソース化された
遅延およびフォールトトレラントライブラリであり、カスケード障害を防ぐためにリモートサービスおよびサードパーティライブラリへのアクセスを分離するために使用されます
。
2.2。雪崩の問題
マイクロサービスでは、サービス間の呼び出し関係は複雑で複雑です。リクエストを実装するために複数のマイクロサービスインターフェイスを呼び出す必要がある場合があります。これにより、非常に複雑な呼び出しチェーンが形成されます。
道路:
図に示すように、ビジネスリクエストは
4つのサービス
A
、
P
、
H
、
I
を呼び出す必要が
あり、これらの4つのサービスは他のサービスを呼び出すことができます。
この時点でサービスが異常である場合:
例:
マイクロサービス
I
異常なリクエストの妨害、ユーザーリクエストは応答を
受け取ら
ない、このスレッドのTomcat
は解放されないため、ますます
ユーザーリクエストが到着すると、ますます多くのスレッドがブロックします。
サーバーでサポートされるスレッドの数と同時実行性は制限されており、要求は常にブロックされます。これにより、サーバーリソースが使い果たされ、他のすべてのサービスが使用できなくなり、雪崩効果が発生します。これは、さまざまな車を生産し、さまざまな部品を必要とする自動車生産ラインのようなものです。さまざまな理由で部品を使用できないと、車全体が組み立てられなくなり、部品が完成するまで部品を待つ状態になります。組み立てを続けます。
このとき、この部品を必要とするモデルが多いと、工場全体が待機状態になり、すべての生産が麻痺します。部品の範囲は絶えず拡大しています。
雪崩の問題に対するHystrixの
解決策は、主に次のようなサービスの低下です。
スレッドの分離
サービス融合
3.3。スレッドの分離とサービスの低下
3.3.1。原則
スレッド分離の概略図:
解釈:
Hystrix
は、依存するサービス呼び出しごとに小さなスレッドプールを割り当てます。スレッドプールがいっぱいになると、呼び出しはすぐに拒否されます。デフォルトでは、キューイングは
障害判別時間を
短縮するために
使用されません。ユーザーのリクエストはサービスに直接アクセスしなくなりますが、プール内のアイドル状態のスレッドを介してサービスにアクセスします。スレッドプールがいっぱいの場合、または時間の経過とともにリクエストすると、ダウングレードされます。サービスの低下とは何ですか。
サービスの低下:コアサービスが利用できない、または利用が弱いことを確認することが優先されます。
ユーザーのリクエストが失敗しても、ブロックされることはなく、無限に待機したり、システムクラッシュが発生したりすることもありません。少なくとも、1つの実行結果(わかりやすいプロンプトメッセージを返すなど)が表示されます。
サービス低下要求の失敗につながりますが、妨害は発生しませんが、ほとんどは対応する依存サービスのスレッドプールリソースに影響しますが、他のサービス
サービスは応答していません。
Hystrix
サービスのダウングレードをトリガーする
条件:
スレッドプールがいっぱいです
リクエストはタイムアウトしました