Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

18.17.6. アンチパターンの回避

  • 接続/セッション/コンシューマー/プロデューサーを再利用します。おそらく最も一般的なメッセージングアンチパターンとは、送信または消費するすべてのメッセージに対して新しい connection/session/producer を作成するユーザーです。これはリソースの使用率が低くなります。これらのオブジェクトは作成に時間がかかり、複数のネットワークラウンドトリップを伴う場合があります。常に再利用してください。
    注記
    Spring JMS テンプレートなどの一般的なライブラリーは、これらのアンチパターンを使用します。Spring JMS テンプレートを使用している場合は、パフォーマンスが低下する可能性があります。Spring JMS テンプレートは、たとえば JCA を使用して JMS セッションをキャッシュするアプリケーションサーバーでのみ安全に使用でき、その後メッセージを送信するためにのみ使用できます。アプリケーションサーバーであっても、同期的に消費するメッセージに安全に使用することはできません。
  • サイズの大きいメッセージを使用しません。XML のような詳細形式は、ネットワーク上の多くのスペースを占有し、結果としてパフォーマンスが低下します。可能な場合は、メッセージ本文では XML を使用しません。
  • 各リクエストに一時キューを作成しません。この一般的なアンチパターンには、一時キューの要求/応答パターンが含まれます。一時キュー要求/応答パターンでは、メッセージはターゲットに送信され、返信先ヘッダーはローカル一時キューのアドレスで設定されます。受信者がメッセージを受信すると、メッセージを処理すると、返信先で指定されたアドレスに応答を返信します。このパターンでよくある間違いは、送信された各メッセージに新しい一時キューを作成することです。これにより、パフォーマンスが大幅に低下します。代わりに、一時キューは多くのリクエストに再使用される必要があります。
  • メッセージ駆動 Bean は使用しないでください。MDB の使用を開始すると、多くのアプリケーションサーバーコードが実行されるため、受信した各メッセージのコードパスを簡単なメッセージコンシューマーと比較すると、すぐに増加します。