2009-07-16 6 views
7

this questionに続いて、実際に私のプロジェクトの1つに適切なHTTPコンテナを見つける段階にあります。私はいくつかのコンテナを調べましたが、高負荷のAJAXのみのリクエストにはどちらが最適かはまだ分かりません。 Apache Minaは非常に有望ですが、比較的複雑です。 AsyncWebと呼ばれる非同期Webサーバーの実装はMinaと統合されているようですが、まだその製品のリレーションを見つけることはできませんでした。もう1つの質問では、私が好きなサーバーSimple HTTPを勧めました。それは...シンプルでクリアでクリーンですが、目的に合っているかどうかはまだ分かりません。Javaのための高速NIO、非同期HTTPサーバー

さらに私が選択するという概念を扱う要求した上でわからない:

  1. すべての着信接続用のディスパッチャスレッドを作成します(最適化はもちろん、スレッドプールとディスパッチキューが含まれる場合があります)、つまり、すべての仕事をしている。利点はおそらく、私は多くの同期の問題に対処する必要はありませんが、おそらく高負荷でのスループットを大幅に低下させるでしょう。

  2. 非常にモジュール化されたアプリケーションであるため、「パイプライン化」していると思います。アプローチはうまくいくかもしれません。特定のタスクごとに固定数のスレッドを作成します。 など。リクエスト処理のためのもの - ヘッダーの非直列化のためのもの(サブミットされたHTMLフォーム、XML-RPC、JSONなどの異なるフォーマットの入力がある場合) - > "Controller Dispatching"(これらのデータで何をしたいのか) (JSON、XML、HTMLなど)で出力をシリアライズし、すべての要求をこれらのレベルが完了するまで移動します。おそらく実現するのがもっと難しいですが、私は固定数のスレッド(その数はハードウェアにも依存します)と心配のきれいな分離を持っています。

フレームワークが適切であり、2つの異なる取り扱い方法を経験したことがありますか?

+0

deftserver.org(若いプロジェクト、現在はいない生産準備ができて、免責事項:巧みなコミッターをIM)を見てとる – Schildmeijer

答えて

3

サブバージョンリポジトリSimple HTTPに例があります。

http://simpleweb.svn.sourceforge.net/viewvc/simpleweb/trunk/src/demo/java/org/simpleframework/example/javafx/

それは彗星と任意の数のクライアントへの更新をディスパッチスレッドを1つだけ使用してリアルタイムの市場データを示しています。 Simpleには、接続された各クライアントの固定ByteBufferキューをベースにしたNIOによる非同期ディスパッチの利点を利用して、I/Oセマンティクスをブロックする透明なトランスポート層があります。したがって、予測可能なメモリ消費量を伴うスムーズな透過NIO出力が得られます。また、Jettyのようなサーバーに対するパフォーマンス測定では、約2倍のパフォーマンス改善が見られます。

http://simpleweb.svn.sourceforge.net/viewvc/simpleweb/trunk/application/Plotter/ApacheBench/ScalabilityApacheBench.png?revision=1448

+0

リンクをありがとう。私はそれを見ます。フレームワークの私自身の積極的な経験のために、私は結局それを使用する傾向があります。 – Daff

7

あなたはJettyを見てみたいことがあり、特に、Hightide

HIGHTIDEが 最先端のAjaxの通信などDWR、ActiveMQの-ウェブ (として ライブラリがあらかじめ設定されていますJMS)をブラウザーに、Bayeux プロトコル(cometdとも呼ばれます)を使用します。 HIGHTIDEでアプリケーションを展開することは、それがスムーズに を拡大縮小することを意味します 桟橋のスマートIO層と 継続メカニズム

の組み合わせのおかげで具体的には、作業の多くは、AJAX用の桟橋を最適化することで置かれています。詳細については、this blog entryを参照してください。

+0

をあまりにも、良い音その、ありがとうございます。私はJettyを評価リストにも載せる予定です。 – Daff

+0

興味深いことに誰かがあなたと意見を異にして、何らかの理由でそれを打ち切りました。なぜ、私は知らない... –

関連する問題