jBroker MQのルーティング

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

はじめに

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

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

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

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

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

jBroker MQルーティング

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

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

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

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

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

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

図2-1: jBroker MQのローカル/リモートブローカ

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

ルータ管理

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

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


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