0

長くなって申し訳ありませんが、情報が足りないよりは情報が多い方が良いでしょう...

市場に出回っている Android アプリケーションにサーバー ベースの機能を追加する必要がありました。私の過去の経験の大部分は .Net Web サービスと MSSQL での作業でしたが、Android は Eclipse と Java を使用しているため、同様のテクノロジを使用してこの Web サービスを作成することにしました。

いくつかのさまざまなチュートリアルを使用して、axis2 と mySQL を使用して (ボトムアップ) Web サービスを開発し、Tomcat7 のローカル インスタンスで非常にうまく通信しています。

war ファイルの展開はかなり単純に思えますが、処理する負荷が予想されることを考慮して、何か特別なことをする必要があるかどうか疑問に思っています。

このアプリケーションには現在、約 500,000 人のユーザーがおり、それぞれがサーバーに要求を出す可能性があります (およそ 30 秒ごととしましょう)。したがって、これは現在予想される最も重いトラフィックになります。

Web サービスは、SQL データベースに対して選択クエリを実行し、いくつかの計算を行ってから応答を返します。データベースへの書き込みはまったく行われません。予想される応答時間は、計算の複雑さに応じて、約 1 ~ 10 秒です。

正直なところ、Tomcat、Java Web Service、または mySQL のロード機能についてはまったくわかりません。Google で答えを検索しても何も見つかりませんでした。しかし、これはおそらく、経験不足に基づいて何を探すべきか正確にわからなかったという事実によるものです.

基本的に、Tomcat、Web サービス、および mySQL の単一のインスタンスで上記のシナリオを適切に処理する必要があるかどうか、または追加の手順を実行する必要があるかどうかを調べています。現時点では、自分の能力が十分に低く、心配する必要さえないのか、それともこの方法で前進するのが悪い決定を下したのか、わかりません。

したがって、誰かがこの質問に答えることができれば、または私がこれを自分でよりよく研究できる方向に私を向けることができれば、それは大歓迎です.

前もって感謝します。

4

1 に答える 1

0

最初に、Webサービスの負荷テストを行って、エラーやパフォーマンスが低下する前にWebサービスが処理できる量を確認することをお勧めします。そのためにSoapUIのようなツールを使用できます。SoapUIツールを使用すると、さまざまなパラメーターを使用してWebサービスの負荷テストを行うようにセットアップできるテストスイートを使用できます。SoapUIはJavaに限定されず、ほとんどすべてのWebサービスで使用できます。

サーバーが予想される負荷を処理できない場合は、いくつかのオプションがあります

  • より多くのハードウェアを投入する
  • クエリを微調整して、Webサービスの呼び出しが可能な限り最速で終了するようにします
  • アプリケーションのプロファイルを作成して、メモリとパフォーマンスのボトルネックを探します
  • 読み取りを高速化するために、DBの前にキャッシュレイヤー(Ehcacheを参照)を配置します。
于 2011-06-07T14:41:34.447 に答える