0

私は、多くのパラレルHTTPリクエストを実行する必要のあるサービスを作成しています。自動スケーリング環境にも展開されますが、可能な限り各サービスインスタンスから多くのパフォーマンスを得たいと考えています。FutureRequestExecutionServiceでPoolingHttpClientConnectionManagerを使用しないでください。

私はこの投稿How to determine the maximum number of simultaneous connections for a given `HttpClient` instanceを見つけ、これらの2つのクラスを混ぜないように勧めました。

私はなぜ興味があるのですか?基本的には、エグゼキュータ・サービスにhttpクライアント・ジョブを提出したいと思います。http接続を再利用するためにhttp接続プーリングを実行します。おそらく、私はこれを熟考していますが、なぜこれらの2つのクラス/コンセプトを1つのアプリケーションで組み合わせるのが悪いのか分かりません。

また、私は、その応答がFutureRequestExecutionServiceごとに1つのhttpクライアントインスタンスを使用していることに気付きました。 。 。私は少し緊張しますが、CloseableHttpClientはスレッドセーフなので、おそらく私は不必要に心配しています。

また、私のコードが送信するクライアントタスクの大部分については、応答が200であれば気にしませんが、そうでない場合は、エラートラッキングメトリックを増やして例外を記録することを計画しています。コールバックルートに行くことを考えています。このメモでは、コールバックの実行場所はわかりません。私のスレッドプールスレッドが実行され、完了すると、すなわち、httpリクエストの先物をブロックしない場合。 。 。どのスレッドがコールバックコードを実行していますか?

答えて

1

ポストには、「PoolingHttpClientConnectionManagerとFutureRequestExecutionServiceの配線コードの緊密な結合」との相談があります。 FutureRequestExecutionServicePoolingHttpClientConnectionManagerを使用しない理由はありません。

+0

ああ、私はあなたに@olegに感謝したいと思っていた、ありがとう!偉大な、私のコールバックのアプローチについての任意の考えですか?ほとんどの場合、私は注意を払い、要求が40倍または50倍の応答を受け取ったときにのみログメッセージを書きます。 – matthewcummings516

関連する問題