3

同じTomcat6で実行されている2つのWebアプリがある場合、一方のアプリからもう一方のアプリにhttp呼び出しを行うと、Tomcatはこの呼び出しを「短絡」しますか、それともホームに電話する前にinterwebzで完全に終了しますか?

@thomaszの回答は、より詳細な情報の必要性を示しています。私たちはSpringsRestTemplateを使用して通信を行っています。そのプラグ可能なアーキテクチャにより、独自のClientHttpRequestFactoryを提供できます。

リクエストがローカルホストに対するものである場合、Tomcatにそれを内部で処理するように説得できるClientHttpRequestを実装することは可能でしょうか?

4

1 に答える 1

4

いいえ、リクエストはループバック インターフェイスを含むすべてのレイヤーを通過します。Tomcat は、同じ Web コンテナーへの要求を異なる方法で処理していません。結局のところ、どのように?URLConnectionまたは生のソケットまたは...を介していくつかのURLにアクセスしていますHttpClient-Tomcatは何らかの方法でアプリケーションのコードを傍受(インスツルメント)し、HTTP呼び出しを内部呼び出しに動的に置き換える必要があります。可能ですが、非常に複雑です。

さらに悪いことに、高負荷時にデッドロックや飢餓を簡単に引き起こす可能性があります。Tomcat ワーカー スレッド プールに 10 個のスレッドがあり、同時に 10 人の同時ユーザーから同じサーブレットにアクセスするとします。すべてのサーブレットが同じ Web コンテナーへの接続を試みるようになりましたが、ワーカー スレッド プールが使い果たされています。したがって、これらのサーブレットはすべてブロックされ、アイドル状態のワーカー スレッドを待機しています。しかし、彼らはそれらすべてを占めているので、これは決して起こりません!

于 2012-08-24T17:38:41.957 に答える