これは、私には、いくつかの余分なRPCは、私たちはアプリケーションサーバを実装するために機能するサーバである探るが、汎用性を失わずになるこのシリーズの前回の記事です。 我々はまた、サーバを持っているthrougput(秒当たりのリクエスト数を)見て、パフォーマンステストを実行する必要があります。
エクストラ
サーバ側のサービスは、初期化パラメータを取ります。 これは、私たちはサービスを構成するためにデータを渡すことができるようになります。 これらのパラメータは、設定されたマップを返すサービスクラスのGetParametersメソッド()、を介してアクセスされます。
検証サービス
サーバにサービスを追加する前に、次のチェックを実行します。
サービスの実装は、パラメータなしのコンストラクタを持つ必要があること
サービス実装は、サービスのインタフェースを実装する必要があること
サービスのメソッドをオーバーロードしないでください。
メソッドパラメータの戻り値の型はシリアライズ可能に
これらのチェックは、一般的な間違いを避けるのに役立ちます。
実行を許可
onPreExecution:あなたが実際に実行する前に、サービスメソッドは、インターセプタを起動されます。 成功した場合ではない非常にNotExecutedException場合、その後、サービスを呼び出すために気絶。 これは、例えば、実装するために使用されようとしている、セキュリティメカニズムと監査(ログ記録)。
のパフォーマンス
パフォーマンステストで我々は、デザインは私たちが望んだようにスケーラブルであるかどうかを確認してください。 テストは、32ビットのUbuntu 9.04のとJava6を上に2GBのRAMを搭載したIntelのモデルT9500(C2D 2.6GHzの、6MBキャッシュPenrynのコア)を持つノートブック上で行った。 結果は次のとおりだった:
事例 クライアントプロセス クライアントスレッド スレッドによる受注 総受注 時間(秒) リクエスト/秒 1
5
30
2500
375000
207
1811.59
2
10
30
2500
75万
229
3275.11
注文の数が倍になるが、時間は10.6%で行く:厳格なストレステストではありませんが、サービスのパフォーマンスとスケーラビリティの良い近似を与える。 また、受注がサービス層に同梱されている層の労働者の注文のプールの大きさであるサーバーの作成時に調整することができる値があります。 デフォルトのサイズは10ですが、あなたが直面している場合、マルチCPU構成では、より良いパフォーマンスを得るためには、この値を増やすことができます。 パフォーマンステストのために我々は10労働者のプールを使用していました。
RPCメカニズムの古いバージョンに基づいて、アプリケーションサーバーは、数年前からの場所にウルグアイで最大の銀行の1つです。
次の記事では、アプリケーションサーバーへの導入を開始し、主なコンポーネントは何か。
お楽しみに!
