小型D級 - ドッカー深度チュートリアルのソースコードのアドバンスト・マイクロ・サービスspringcloud + _5-06長さの新バージョン

注釈

図6に示すように、深いソースコード解析Hystrixダウングレードポリシーのシニア空間と調整
    プロファイル:ソースコード解析Hystrixダウングレードポリシーおよび調整

    ポリシーHystrixCommandProperties説明するために、デフォルトのビューを1
        1)execution.isolation.strategy分離戦略
            スレッドスレッドプール分離(デフォルト)
            SEMAPHOREセマフォ
                セマフォをスレッドの高いオーバーヘッドを生じる毎秒呼び出し、数千の場合のように高い同時実行状況に対するインターフェースは、通常は非ネットワーク呼び出し、実行速度に適用

        2)execution.isolation.thread.timeoutInMillisecondsタイムアウト
            デフォルト1000年MS

        タイムアウト制限を開くにする(無効にされてはならない)かどうかをexecution.timeout.enabled 3)


        同時の最大数は、後続の要求が拒否される場合4)、セマフォ時間の分離ポリシーをexecution.isolation.semaphore.maxConcurrentRequests、デフォルトは10であります


    公式文書:
        https://github.com/Netflix/Hystrix/wiki/Configuration#execution.isolation.strategy

    2、戦略調整
        タイムアウト調整

    hystrixを:
      コマンド:
        デフォルト:
          実行:
            アイソレーション:
              スレッド:
                timeoutInMilliseconds:4000
 

始めます

アナログ製品の応答が遅いです。SLEEP2秒


製品サービス呼び出し、OrderServiceの
なぜそれを正しくタイムアウトしたサービスの開始を?装うデフォルトのタイムアウト機構からです

hystrix自体がヒューズのダウングレードを有しています。ここでreadTimeoutは4秒に設定

リコール、同じ問題がまだだろう

我々はヒューズを使用しているため、装うタイムアウトは動作しませんセットに依存しています。我々はhyxtrixアウト戦略を分析する必要があります。
@HystrixCommandこのコメントにポイント



対応するリストが存在し、左クリックした後

HystrixCommandProperties見つけるために

、デフォルトのコンフィギュレーションノートの

設定項目が多いコンストラクタは。ここでは、公式ドキュメントを参照してください
https://github.com/Netflix/Hystrix/wiki/Configuration#execution.isolation.strategy
execution.isolation.strategy:分離戦略は


ここを見て、公式文書である,:ます。https://github.com /ネットフリックス/ Hystrix /ウィキ
サービスコールに関連する他のサービスを

1日、私は特に遅いサーブ場合は、すべての要求はここまで積み重ねている

Tomcatをスレッドプールで、すべてのスレッドが他の要求に、ここでの主なカードであります付属していません。使えなくシステム全体原因

だけで250個のスレッドを呼び出すことができ、主の要求カードサービスがある場合には千件のスレッド・プールが均等に分布していなかったが、250を要求します。他のスレッドも使用することができます。このカードではそこのサービスを持っていないので、スレッドプールの分離があります。

戻るHystrixCommandProperties


デフォルトのポリシー・ポイントへ:Default_executionIsolationsStrategyの




デフォルトポリシーはスレッドです。

セマフォはスレッドです

タイムアウト

execution.timeout.enabled 
検索キーワード

ここで値を対応します。デフォルトは1000ミリ秒、または1秒です。


オープンタイムアウト制限(無効になってはいけません)execution.timeout.enabledされている
任意のサービスがタイムアウトをオフにしてはいけませんが、タイムアウト時間を設定してください。
これは、デフォルトで有効になっています。いつでもサービスは、確かに無制限のないリンクが問題を持っている必要があります。リンクが枯渇される

同時の最大数は、後続の要求が拒否される場合は、セマフォの時間execution.isolation.semaphore.maxConcurrentRequests分離戦略を、デフォルト値は10である

職員が対応する文書検索キーワードを持っています

セットアップ

その内側に配置されたCommandPropertiesのプロパティアノテーションを追加し、入り口クラスかもしれません。しかし、その非友好的な設定。ここでは、この道を行きます、

私達はちょうどタイムアウトを呼ぶ問題を解決するために、設定したプロファイルを使用して
あなただけの最初のタイムアウト閉じることができますいくつかの方法があり

、ここで設定し、過去に書かれた何のヒント、ノートが直接コピーすることはできません




残業、再びコール時間が閉鎖されているので、問題はありません。

もう一つの方法 - 修正タイムアウト


タイムアウト4秒に

テスト

要求を2秒以上かかります

 

おすすめ

転載: www.cnblogs.com/wangjunwei/p/11449501.html