私は Netflix OSS Hystrix をいじっており、現在、プロジェクトに含めるさまざまな構成と可能性を探っています。とりわけ、私のアプリケーションはネットワーク呼び出しを行う必要がありますHystrixCommand.getFallBack()
...
ここで、そこでネットワーク呼び出しを行わず、代わりに一般的な回答を提供するのがベスト プラクティスであることを読みました ( Hystrix Wikiを参照)。本当にこれを行う必要がある場合は、HystrixCommand
またはを使用する必要がありますHystrixObservableCommand
。
私の質問は、使用する場合、またはその他のオプションを使用してHystrixCommand
呼び出す必要があるかどうかです。HystrixCommand.run()
HysrixCommand.queue()
また、私のログでは、getFallBack()
異なる呼び出しスレッドを持つことができることに気付きました (たとえば、Hystrix-Timer、これは実行メソッドを中断した人に依存すると思います)。ここで、フォールバックからのシェル呼び出しがパフォーマンスにどのようにHystrixCommand.run()
影響するかを知りたいのですが、呼び出し元のスレッドは生きていて、そのコマンドが終了するまでブロックされますか?
編集:問題に新鮮な目で、私は今、「一般的な答え」(上記)が何らかの形、Promise
つまりCompletableFuture<T>
Java用語である可能性があると考えています。したがって、 から promise を返すHystrixCommand.run()
と、呼び出し元のスレッド (Hystrix 内部) がすぐに戻ることができるため、スレッドが解放されます。しかし今、私はこの動作の実装にこだわっています。何か案は?
助けてくれてありがとう!