SpringCloud-ヒューズHystrix(1)

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 サービスダウングレードをトリガーする 条件:
       スレッドプールがいっぱいです
       リクエストはタイムアウトしました
 

おすすめ

転載: blog.csdn.net/SSbandianH/article/details/109442979