2016-03-18 18 views
4

アプリケーションにHystrixを統合しようとしています。そのアプリケーションはすでに生産中で、サンドボックスでのヒステリシスの統合作業をテストする予定です。 私の質問は、いくつかの設定を使ってhystrixの機能をオン/オフする方法はありますか?Hystrix機能を無効にする

+0

おそらく、circuitBreaker.forceClosedをtrueに設定するか、circuitBreaker.enabledをfalseに設定します。 – yousafsajjad

答えて

5

この設定はありません。 Hystrixを無効にするには、複数のパラメータを設定する必要があります。

設定オプションについてhttps://github.com/Netflix/Hystrix/wiki/Configurationを参照してください:

hystrix.command.default.execution.isolation.strategy=SEMAPHORE 
hystrix.command.default.execution.isolation.semaphore.maxConcurrentRequests=100000 # basically 'unlimited' 
hystrix.command.default.execution.timeout.enabled=false 
hystrix.command.default.circuitBreaker.enabled=false 
hystrix.command.default.fallback.enabled=false 

使用可能なパラメータのためにHystrixのバージョンを再確認してください。

+0

私はこれをすぐにテストするつもりです。 – yousafsajjad

+0

Btw、なぜセットストラテジをSEMAPHOREに変更するのが問題なのですか? – yousafsajjad

+1

セマフォを使用すると、ラップされたHystrixコマンドの新しいスレッドが作成されるのを防ぎます。この無効化されたセットアップで同時リクエストを制限しないので、そうしないと多くのスレッドが終了します。 – ahus1

2

ahus1によると、Hystrixを完全に無効にする方法はありません。アプリケーションでそれを無効にするには、HystrixCommandをラッパークラスに入れることが最もクリーンで安全であると判断し、ラッパークラスは使用したHystrixCommand(この場合はexecute()メソッド)の部分のみを公開しました。ラッパークラスを構築するときには、実行するコードを含むCallableを渡します.Hystrixが(独自の設定値に従って)無効になっている場合は、HystrixCommandを作成せずに単にそのCallableを呼び出します。これにより、Hystrixコードの実行を回避し、Hystrixがアプリケーションに影響を与えていないと言うことが容易になります。が無効になっています。

+0

これはかなりきちんとした解決策です。私は同じ問題のアイデアを探していて、これを使用します。 Hystrixを導入するのは初めてのことで、簡単にオン/オフを切り替えることができれば便利です。 –

0

あなたのプロジェクトは春管理されている場合は、applicationContext.xmlを コメントにhystrixAspectのBean定義をコメントすることができますに次の行

豆ID = "hystrixAspect" クラス= "com.netflix.hystrix.contrib。 javanica.aop.aspectj.HystrixCommandAspect "/>

これにより、プロジェクトからHystrixが削除されます。

関連する問題