2

高性能な STRUTS2 ベースの Web アプリケーションを作成するために心に留めておくべきすべてのことを尋ねたいと思いました。サイトのトラフィックが多いことが保証されています (つまり、毎日約 500,000 件のリクエストがあると仮定します)。また、かなりの数のデータベース アクセスが発生します。

次のフレームワークを使用することに決めたのでコメントしてください(またはより良い代替案を提案してください):

  1. Struts2 + スプリングと休止状態
  2. ビューの Jsp + jquery
  3. ajax 呼び出しの DWR

いくつかのパフォーマンス調整/強化戦略を提案してください。ありがとう!

4

3 に答える 3

7

あなたができることのカップル。

初め:

Web サイトの最大のボトルネックは常にデータベース接続です。データベースが別のクラスターで実行されていることを確認し、休止状態を使用する場合は各データベース セッションでより多くのことを試みる必要があります。開いたり閉じたりする DB 接続が少ないほど、アプリケーションは高速になります。

クエリなどをキャッシュするロジックがあるため、可能な限り hibernate を使用します。また、ユーザー セッション全体で同じ情報が使用されている場合は、その情報を DB に何度も照会する必要がないように、それをセッション オブジェクトに配置します。

2番:

可能な限り Spring IOC を使用してください。データベースのクエリを実行する「サービス」クラスを作成する必要があります。これらのクラスはシングルトンとして作成し、Spring IOC を介してコンストラクターまたはセッターに注入する必要があります。

三番:

牌や改札などの道具を使いましょう。これにより、JSP のレイアウトを作成できます。

第4:

ロード/クエリに時間がかかるページに表示されているデータがある場合は、先に進んで、高速な他のデータをページにロードしてから、AJAX を介して低速データを動的にロードします。これにより、すぐに結果を受け取っているという印象をユーザーに与えることができます。

もちろん、サーバー側でできることは他にもたくさんあります。アプリケーションを複数のノードにデプロイし、ロード バランサーを使用してトラフィックを最も負荷の低いノードにルーティングすることができます。プロキシ、アプリ サーバー、ブラウザー、およびデータベースでのキャッシュの量も、パフォーマンスに大きな影響を与えます。

それが役立つことを願っています!

于 2011-06-24T18:33:51.613 に答える
2

休止状態を使用しているため、これらの議論を含む多くのリソースがある休止状態のパフォーマンス調整も調べる必要があります。

于 2011-06-24T12:58:54.947 に答える
0
  1. アプリの設計におけるボトルネックを回避します。Yahooのこれらのヒントを参照してください。
  2. Webサーバー、アプリケーションサーバー、およびデータベースサーバーを別々のハードウェアクラスターで実行します。
  3. パフォーマンスが低下している原因を確認するのに十分なプロファイルではない場合。コードにボトルネックがある場合は修正し、そうでない場合は十分に速くなるまでハードウェアを追加します。
于 2011-06-24T12:31:53.937 に答える