メッセージバス
メッセージバスは、メッセージを交換するための疎結合された方法を提供します。 メッセージを送信するクラスはメッセージバスを呼び出してメッセージを宛先に送信し、その宛先に登録されている他のクラス(リスナー)がメッセージを受信します。 リスナーは送信者に対して透過的であり、その逆も同様です。
主なメッセージングコンポーネントは次のとおりです。
宛先: メッセージが送信される論理的(物理的ではない)な指名された場所。
リスナー: 特定の宛先に送信されたメッセージを リッスン するクラス。
メッセージバス: 宛先登録を処理し、リスナーにメッセージを送信するフレームワーク。
メッセージ: オプションの応答先を含む、ペイロードとメタデータを含むことができるオブジェクト。
送信者: メッセージバスを呼び出して宛先のリスナーにメッセージを送信する任意のクラス。
次の図は、コンポーネントの相互作用を示しています。

相互作用シーケンスの例を次に示します。
- 任意のクラスが登録された
DestinationにMessageを送信します - メッセージバスは、
Messageを宛先の登録済みMessageListenerにディスパッチします。
メッセージ送信者は、メッセージバスを使用してメッセージを宛先に送信することにのみ関係していて、メッセージの受信者には関係ありません。 メッセージリスナーは、宛先でのメッセージの受信にのみ関係していて、メッセージの送信者には関係ありません。
同期および非同期メッセージング
メッセージバスは、同期および非同期でメッセージを送信します。
同期メッセージは削除され、Liferay DXP 7.4 U49/Liferay Portal 7.4 GA49 以降ではサポートされなくなりました。
同期メッセージング: 送信者はメッセージを送信した後にブロックします。 送信者の条件(送信者のタイプによって決定される)が満たされると、送信者はブロックを解除して処理を続行します。
非同期メッセージング: 送信者は、メッセージの送信後すぐに処理を続行します。
次のトピックでは、両方のメッセージング方法について説明します。
-
非同期メッセージングの使用 では、宛先を構成して、その宛先にメッセージを非同期に送信する方法を示します。 これは、メッセージを送信する最も簡単な方法です。
-
以前のバージョンでのデフォルトの同期メッセージングの使用 は、1 つのリスナーがメッセージに応答するまで メッセージの送信者がブロックする様子を示しています。また、リスナーが応答しない場合は、メッセージがタイムアウトするまでメッセージをブロックする様子を示しています。
-
以前のバージョンでの直接同期メッセージングの使用 は、 すべての リスナーがメッセージを受信するまで、メッセージ送信者がメッセージの送信をブロックしていることを示しています。
パフォーマンスの調整
メッセージバスAPIを使用すると、登録イベント、宛先、宛先メッセージリスナー、およびメッセージキューの監視が容易になります。 宛先タイプ、メッセージキューパラメータ、およびスレッドパラメータを調整することにより、ニーズに合わせてメッセージバスコンポーネントを設定できます。 詳細については、 メッセージング パフォーマンスのチューニング を参照してください。
次のステップ
メッセージバスを初めて使用する場合は、Liferayに組み込まれている宛先上でリッスンすることをお勧めします。 次に、 メッセージのリッスン から始めます。