スタンドアロン/Web ベースの Java アプリケーションを構築する予定です。一度に数千のリクエストを処理できる必要があります。リクエスト メッセージは、たとえば 6040 などの TCP ポートを介して受信されます。クライアントからのメッセージを常にリッスンするための専用スレッドがあります。メッセージがソケットから読み取られると、このスレッドはスレッドを生成してリクエストを処理します。したがって、基本的にはリクエストごとに 1 つのスレッドです。
リクエストの処理には、リモート データベースでのストアド プロシージャの呼び出し、ローカル データベースでの更新/挿入の実行、ログ記録など、多くのデータベース操作が含まれます。リクエストを処理した後、クライアントにレスポンスを送信する必要があります。
シナリオが明確であることを願っています。要するに、堅牢なマルチスレッドのスケーラブルなアプリケーションを構築したい (クリシェを使用するため)。私の質問は次のとおりです。
- 着信要求をリッスンするメイン スレッドは、要求ごとにスレッドを生成するか、スレッド プールから 1 つ取得する必要があります。私が求めているのは、アプリケーションでスレッド スポーニングまたはスレッド プーリングを使用する必要があるかということです。
- スタンドアロン Java アプリケーションをクラスターにデプロイすることはできますか?
- 管理目的で開発する予定の Web アプリケーション (JBoss 7.1 サーバーにデプロイ) でデプロイして実行するのは良い考えですか、それともスタンドアロン アプリケーションにする必要がありますか?
- 一般に、Java で堅牢なマルチスレッド スケーラブルなアプリケーションを構築する際に考慮すべき問題は何ですか?