はじめに

ルーティングはバージョン2.1で導入されました。ルーティングを使用すると、ネットワークで複数のJMSサーバを使用できます。 各サーバ(ブローカ)は、メッセージをほかのブローカに転送できます。メッセージが転送されたブローカは、さらにほかのブローカにもメッセージを転送できます。これにより、高度なアプリケーションで、よりスケーラブルで、性能も高く、さらに柔軟性のあるメッセージシステムを作成できます。 この章では、Novell exteNd Messaging Platform JMSのルーティングについて詳しく説明します。

ルーティングの概念は、IPおよびメールメッセージングスタックで良く知られています。メッセージは、送信者から受信者に直接送られるのではなく、いくつもの中間段階を介して送られます。ルーティングは、プロデューサおよびコンシューマのアプリケーション間に単一のメッセージサーバを導入するという発想を拡張したものです。ルーティングの特長として、次の点が挙げられます。

ルーティングの利点を説明するため、4種類の基本的なネットワークトポロジ(次の図1)を参照してください。ここで、いくつかの専門用語を紹介します。このガイドでは、「ダウンストリーム」という用語を使用します。これは、特定のノードからアクセスできるすべてのノードという意味です。たとえば、図のファンアウトで、c13とc14は、c11とc12の両方のダウンストリームです。同様に、「アップストリーム」という用語も使用します。これは、特定のノードに対するメッセージソースのノードという意味です。

図1: 基本的なネットワークトポロジ

これらのトポロジではそれぞれ特別な利点があります。

ルーティングが展開される通常の構成には、ローカル/リモートブローカがあります。この場合、ネットワークの各マシンには、常に使用できるものと仮定できるローカルブローカ(ローカルマシンで実行)があります。各ローカルブローカは、1つまたは複数のリモートブローカと通信します。リモートブローカはメッセージを分配します。ローカルブローカとリモートブローカ間の接続が使用できない場合、これは、クライアントに対して完全に透過的になります。

JMSルーティング

JMSは、各サーバで任意の数のルーティングターゲットブローカを許可することで、ルーティングをサポートしています。ターゲットブローカは、クラスタリングの場合と同様に、ホスト/ポートを使用して指定されます。また、クラスタリングと同様に、メッセージ転送は、キューやトピックにより異なります。

  1. トピックは論理上すべての場所に存在するので、トピックメッセージは、デフォルトでは、常に転送されます。つまり、トピックメッセージを受信するルータからの任意のコンシューマダウンストリームもそのメッセージを受信できます。
  2. キューメッセージは、次の2つの条件が満たされた場合だけ転送されます。まず、キューがローカルな場合、つまり、キューがメッセージを受信したサーバやルーダにバインドされない場合です。キューがローカルな場合、メッセージはローカルキュー受信者(または別のブローカからのプロキシ受信者)にだけ送信されます。次に、サーバがクラスタにあるときに、任意の数のクラスタが問題のキューをホストする場合、キューメッセージは転送されません。この場合、メッセージは、メッセージをホストするクラスタサーバに転送されます。

同じネットワークのメッセージブローカ間での宛先は自動的には同期化されません。宛先があるブローカに作成され、このブローカから次のブローカにメッセージが送られる場合、次のブローカにはこの宛先は自動作成されません。トピックメッセージが、メッセージの宛先をホストしないブローカに送られる場合、メッセージは破棄されます。ただし、キューメッセージが転送できない場合、これは、特別なエラーキュー(設定されている場合)に保存されます。

このような機能により、単一サーバシステムと同じキューおよびトピックのセマンティックが提供されます。トピックサブスクライバは、最初のサブスクライブ後にトピックに送信されるすべてのメッセージを受信します。キュー受信者は、未処理メッセージをキューからラウンドロビン方式で受信します。唯一異なる点は、コンシューマが、メッセージの本来の送信先ではないサーバからでもメッセージを受信できるという点です。

ローカル/リモートブローカ

ローカル/リモートブローカは、一般的な構成です。この構成は、特に、HTTP転送と併用すると、たとえば、ラップトップでインターネットを使用してリモートブローカにメッセージを送ることができます。次の図2にこの構成を示します。

図2: Novell exteNd Messaging Platform JMSのローカル/リモートブローカ

メッセージのプロデューサは、ローカルブローカを使用します。この場合、このローカルブローカは、ファイル保存を使用するように設定されています(「ライト」メッセージサーバ)。次に、ローカルブローカは、HTTPを使用してメッセージをリモートブローカに送ります。つまり、メッセージはインターネットに送られます。 リモート側では、ORBのHTTPトンネルが着信HTTPトラフィックを受信して、リモートブローカに転送します。

ルータ管理

ルーティングはJMQMessageServiceインタフェースから次のプロパティを使用して設定されます。

これらのプロパティは、JMSサーバプログラムjmqservで使用されるmsgsvc.propertiesファイルの一部です。


Copyright © 1998-2003, Novell, Inc.All rights reserved.