第3章 メッセージングコンセプト

HornetQ は、非同期のメッセージシステムです (メッセージングシステムと呼ばれる Message Oriented Middleware)。

3.1. メッセージングコンセプト

メッセージングシステムは、信頼性、トランザクション、および他の多くの機能を保持したまま、異種システムをお互いに疎結合するよう設計されています。
Remote Procedure Call (RPC) パターンに基づくシステムとは異なり、メッセージングシステムは主に、要求と応答間に密接な関係がない状態で非同期のメッセージング受け渡しパターンを使用します。ほとんどのメッセージングシステムは要求応答モードをサポートしますが、これはメッセージングシステムの主な機能ではありません。
システムがエンドツーエンドで非同期になるよう設計すると、ハードウェアリソースの使用率が改善され、IO 操作をブロックするスレッドの数が最小になり、ネットワーク帯域幅が能力いっぱい使用されます。
RPC の方法では、各要求ごとに応答を待つ必要があり、ネットワークラウンドトリップ時間、またはネットワークのレイテンシーにより制限されます。非同期システムでは、さまざまな方向のメッセージのフローをパイプラインできるため、レイテンシーではなくネットワークの帯域幅により制限されます。これにより、通常はパフォーマンスが大幅に優れたアプリケーションを作成できます。
メッセージングシステムはメッセージの送信者をメッセージのコンシューマーから切り離します。メッセージ送信者とコンシューマーは完全に独立しており、柔軟性があり、疎結合のシステムを作成できます。
大規模は企業では、メッセージングシステムを使用して、異種システムをお互いに疎結合するメッセージバスを実装することがよくあります。多くの場合、メッセージバスは Enterprise Service Bus (ESB) のコアを形成します。異種システムを切り離すためにメッセージバスを使用すると、システムを簡単に拡張または適合させたり、古いシステムを廃止したりできます。