springcloud-hystrixフェイス質問

 

何その1 hystrix?

ネットフリックスは、(最大の外国人と同様の、愛ファンタスティックアート、Youkuの)ビデオサイト五、六年前、あまりにも、システム、サイト全体、しばしば失敗、可用性が高すぎないと感じました

時々、VIP会員のいくつかは、ビデオを見ることができなかった、時にはカトン上のビデオを見て、支払うことができません。

同社の収益に影響を与えます!

五十六年前、ネットフリックス、APIチームは、高可用性を強化するために、春に似たフレームワークの開発は、MyBatisのは、そのような枠組みにそう休止状態、および

高可用性フレームワーク、hystrix

hystrix、フレームワーク、申し出高可用性に関連するさまざまな機能、そして保護hystrixの下に言うことを確認して、システム全体が国家の長期的な可用性にすることができ

理想的な条件の下では、ソフトウェアの障害が、それは全体のシステム、サーバハードウェア、冗長サービスのいくつかの障害の崩壊につながることを言うべきではありません

唯一可能性の高いシステムの完全な崩壊につながるいくつかの部屋につながる事故アリペイ、建設労働者、Waduanケーブルは、停電を持って、前に似ています

利用できる、といくつかの不具合やバグの区別を持っていません

提供2 hystrix機能

リソース分離、電流制限ヒューズ、降格、操作及び保守監視

リソースの分離

お使いのシステム、何かの作品は、障害が発生した場合に、システムは、このようなスレッドリソースなどのリソースが不足していないだろうしてみましょう

私は、ものがあり、実際にプロジェクトのケースだったいくつかの障害に遭遇した場合には、何か、プロジェクトをやっジュニアパートナーを行うために複数のスレッドを使用するには余りにも注意を払っていない、リソースの分離、コードのその部分で、各、スレッドを開始するために、何かの大きな作品で、その結果、直接死のサイクルで、バグので、一度に各スレッドの無限ループを実行しているスレッド

私は最終的にシステム資源の枯渇、崩壊につながる、動作しない、利用できない、破壊されました

リソースの分離、コード、10スレッドの最大までのその部分はより多くの、ではない費やされ、そして破壊すること、および優れたリソースの限られた数

限定的

例えば、突然二百万QPSは、他の900の000 QPSが拒否された、システムに10万QPSを破壊された入ってくるトラフィックの高い同時流入、

ヒューズ

一部のシステムでは、いくつかの障害が、例えば、MySQLをハングアップされ、バックエンドに依存して、それぞれの要求が与えられ、ヒューズは、直接ではなく、後続の要求が受信上、アクセス拒否した後、10分後のmysqlを見てみてくださいノー回復

降格

mysqlはシステムが発見され、ハングアップ、自動的にいくつかのデータを抽出するために、メモリに保存された少量のデータをダウングレード

運用及び保守監視

+ +最適化されたアラーム監視、さまざまな異常な状況、問題タイムリーなアラーム、およびパラメータのいくつかのシステム構成の最適化、またはコードがあります

3どのようにコンテンツのこの部分を説明するには?

(1)Eショップ-キャッシュは、キャッシュのコアサービスの可用性をアーキテクチャに変換する方法
(2)単一のプルアウトhystrixの一部、作られた無料の小さなコース、メリットが支払わとして
(3)Eショップ-キャッシュ、書き込みコード、Eショップ-キャッシュ-ヘクタール、ビジネスシナリオは、コードを再書き込みするために、前で合流
、単にビジネスのコンテキストに説明し、このコンテンツのサービスの可用性を行うhystrix(4)を、独立したコードを再書き込みするために

データを取得するMySQLデータベースを照会するために、ソース・システムに応じて、ソース・システムからのインタフェースコール再う、すべてのレベルでの障害の場合には、キャッシュデータキャッシュをEショップ

あなたは、障害を持つさまざまなサービスに依存している場合、それはあなたのシステムが使用できなく可能性があり

hystrix高可用性システムの様々な利用できない様々な状況に対処する強化システム

Hystrixの4つの設計の原則

  • 通話遅延呼び出しが失敗し、制御及び故障保護するときに、サービスコールへの依存が起こります。
  • 複雑な分散システムでは、その依存関係の1つは、システム全体でサービス障害の拡散を防ぎます。例えば、他のサービスにつながるサービス障害の一つは、また、障害を追いました。
  • フェイルファスト(速い失敗)と急速な回復のサポートを提供します。
  • 優雅な劣化フォールバックサポートを提供します。
  • ほぼリアルタイムの監視、アラームおよび運用・保守業務をサポート。
例えば:
    分散システムは、サービスAとサービスBに依存して存在し、サービスB、サービスC / D / E.に依存します そのような洗練されたシステムでは、例えば、それはほとんどの100のスレッドのリソースにあってもよいです。通常の状況下では、サービスCを呼び出す40件の同時スレッドは、それぞれ30件の同時スレッドがD / Eを呼び出します 
    Cコールサービス、ちょうど20msの、そして今であるため、サービスCの故障の、遅延などの、または約2秒Diaozhuスレッド、その後、ハングアップ。40件のスレッドは、すべての要求の継続的な流入による立ち往生して、他のスレッドにも同じことが立ち往生になり、サービスCを呼び出すために使用することができます。スレッドBサービスのリソースへのこのリードは彼らのダウンタイムにつながる、多数のスレッドが動作し続けたとしても、新しい要求を受信できない、疲れています。サービスもハングアップ。
     Hystrixリソースは、サービスBの制限として、単離することができる唯一の40スレッドコールサービスCです。この40スレッドがライブハングアップすると、他の60件のスレッドは、まだ通常の呼の仕事です。システム全体が崩壊しないことを確実にするために。
 

5つのHystrix設計原理の詳細

  • そのようなリソース、tomcatの内のすべてのスレッドなどのリソースが不足し防ぐには、任意の依存サービス、。
  • 要求のキューイングとバックログを避け、電流制限および制御の高速障害を失敗。
  • ダウングレードは、障害に対処するためのフォールバックメカニズムを提供します。
  • このような隔壁(隔壁分離技術)、スイムレーン(レーン技術)、回路遮断器(回路技術)として使用資源分離技術は、依存サービスの故障の影響を制限します。
  • ほぼリアルタイム統計/監視/アラーム機能により、障害の速度を向上させるが見つかりました。
  • ほぼリアルタイム熱特性や構成変更機能によって、トラブルシューティングとスピードの回復を改善します。
  • すべての障害状態だけではなく、ネットワーク障害のため、サービスコールに依存して保護します。

 

参考:
        https://www.nowcoder.com/discuss/188033

  https://www.cnblogs.com/yzh-blog/p/11703037.html#1817129157

おすすめ

転載: www.cnblogs.com/wjqhuaxia/p/11827448.html