Documentation

Message Busメッセージバス

メッセージバスは、メッセージを交換するための疎結合された方法を提供します。 メッセージを送信するクラスはメッセージバスを呼び出してメッセージを宛先に送信し、その宛先に登録されている他のクラス(リスナー)がメッセージを受信します。 リスナーは送信者に対して透過的であり、その逆も同様です。

主なメッセージングコンポーネントは次のとおりです。

宛先: メッセージが送信される論理的(物理的ではない)な指名された場所。

リスナー: 特定の宛先に送信されたメッセージを リッスンする クラス。

メッセージバス: 宛先登録を処理し、リスナーにメッセージを送信するフレームワーク。

メッセージ: オプションの応答先を含む、ペイロードとメタデータを含むことができるオブジェクト。

送信者: メッセージバスを呼び出して宛先のリスナーにメッセージを送信する任意のクラス。

次の図は、コンポーネントの相互作用を示しています。

メッセージングコンポーネントの相互作用の例

相互作用シーケンスの例を次に示します。

  1. 任意のクラスが登録されたDestinationMessageを送信します

  2. メッセージバスは、Messageを宛先の登録済みMessageListenerにディスパッチします。

メッセージ送信者は、メッセージバスを使用してメッセージを宛先に送信することにのみ関係していて、メッセージの受信者には関係ありません。 メッセージリスナーは、宛先でのメッセージの受信にのみ関係していて、メッセージの送信者には関係ありません。

同期および非同期メッセージング

メッセージバスは、同期および非同期でメッセージを送信します。

同期メッセージング: メッセージの送信後に送信者がブロックします。 送信者の条件(送信者のタイプによって決定される)が満たされると、送信者はブロックを解除して処理を続行します。

非同期メッセージング: 送信者は、メッセージの送信後すぐに処理を続行します。

次のトピックでは、両方のメッセージング方法について説明します。

  • 非同期メッセージングの使用 は、宛先を構成し、その宛先に非同期でメッセージを送信する方法を示しています。 これは、メッセージを送信する最も簡単な方法です。

  • デフォルトの同期メッセージングの使用 は、1つのリスナーがメッセージに応答するまで、 または リスナーが応答しない場合はメッセージがタイムアウトするまで、メッセージ送信者がブロックする方法を示しています。

  • Using Direct Synchronous Messagingは、 すべての リスナーがメッセージを受信するまでメッセージ送信者がメッセージの送信をブロックする方法を示しています。

パフォーマンスの調整

メッセージバスAPIを使用すると、登録イベント、宛先、宛先メッセージリスナー、およびメッセージキューの監視が容易になります。 宛先タイプ、メッセージキューパラメータ、およびスレッドパラメータを調整することにより、ニーズに合わせてメッセージバスコンポーネントを設定できます。 詳細については、 メッセージングパフォーマンスのチューニング を参照してください。

次のステップ

メッセージバスを初めて使用する場合は、Liferayに組み込まれている宛先上でリッスンすることをお勧めします。 次に メッセージを聞く を開始します。