2016-10-26 6 views
0

モバイルクライアントが起動または起動するたびにレコードを作成または更新することを目的とする春のRESTコントローラがあります。このURLは、ユーザーがアプリを起動したとき、またはレジューム後にフォアグラウンドになったときにのみ起動されます(つまり、デバイスのホームボタンを何か他の場所に押し込んだりしばらくしてから、アプリアイコンを押してメモリからフォアグラウンドに移動させます)。スケーラビリティの向上大量のデータベースの挿入または更新クエリで@Asyncを使用するSpringアプリケーション

このURLの予想される要求数は、毎分600リクエストです。

このアプリケーションをスケールするには、Springコントローラのデータベース(MySql)作成/更新ロジックを別のスレッドに配置するか、Springの@Async機能を使用する方がよいでしょうか? Webサーバー(glassfish)が要求を待機キューにプッシュする前に、非常に長い時間システムポートを保持せず、1台のマシンが多数の要求を処理できるようにします。

また、 このテーブルの予想されるテーブルサイズまたはレコード数は、約10M〜30Mです。

答えて

1

私は個人的には、まず少なくとも非同期呼び出しで気にする必要はありません。 jmeterスクリプトを作成し、それに負荷をかけて実行方法を確認してください。

Asyncの背後にあるthreadPoolExecutorを使用して(簡単に設定できる)、スローダウンを開始する場合は、確かに有効なオプションです。キューサイズとスレッド数(スレッドプールエグゼキュータとWebコンテナの両方)を構成するこれらのタイプのものでは、jmeterのようなものとYourkitのような良いプロファイリングツールが独自のものになる。

関連する問題