4.21.2. アドレスフェデレーションの一般的なトポロジー

アドレスフェデレーションを使用する一般的なトポロジーの一部を以下に示します。

対称トポロジー

対称トポロジーでは、プロデューサーとコンシューマーは各ブローカーに接続されます。キューとそのコンシューマーは、いずれかのプロデューサーによって公開されるメッセージを受信できます。対称トポロジーの例を以下に示します。

図4.1 対称トポロジーにおけるアドレスフェデレーション

対称トポロジーのアドレスフェデレーションを設定する場合は、アドレスポリシーの max-hops プロパティーの値を 1 に設定することが重要です。これにより、メッセージが 1 回だけ コピーされ、cyclic レプリケーションは回避されます。このプロパティーを大きな値に設定すると、コンシューマーは同じメッセージの複数のコピーを受け取ります。

完全なメッシュトポロジー

完全なメッシュトポロジーは対称設定と似ています。3 つ以上のブローカーは相互に対称的に分散し、完全なメッシュを作成します。この設定では、プロデューサーとコンシューマーは各ブローカーに接続されます。キューとそのコンシューマーは任意のプロデューサーによって公開されるメッセージを受信できます。このトポロジーの例を以下に示します。

図4.2 完全なメッシュトポロジーにおけるアドレスフェデレーション

対称設定の場合、完全なメッシュトポロジーのアドレスフェデレーションを設定する場合は、アドレスポリシーの max-hops プロパティーの値を 1 に設定することが重要です。これにより、メッセージが 1 回だけ コピーされ、cyclic レプリケーションは回避されます。

リングトポロジー

ブローカーのリングでは、各フェデレーションされたアドレスは、リング内の 1 つだけに対してアップストリームになります。このトポロジーの例を以下に示します。

図4.3 リングトポロジーにおけるアドレスフェデレーション

リングトポロジーのフェデレーションを設定する場合は、循環レプリケーションを回避するために、アドレスポリシーの max-hops プロパティーを n-1 の値に設定することが重要です。ここで、nはリング内のノード数になります。たとえば、上記のリングトポロジーでは、max-hops の値は 5 に設定されます。これにより、リング内のすべてのアドレスがメッセージが 1 度だけ 見えるようになります。

リングトポロジーの利点は、必要な物理接続の数において、チャイルがセットアップすることです。ただし、このタイプのトポロジーの欠点は、1 つのブローカーが失敗した場合にリング全体が失敗することです。

fan-out トポロジー

ファンアウトトポロジーでは、単一のマスターアドレスはフェデレーションされたアドレスのツリーによってリンクされます。マスターアドレスに公開されたすべてのメッセージは、ツリー内の任意のブローカーに接続しているすべてのコンシューマーによって受信できます。ツリーは、深さに設定できます。ツリー内に既存のブローカーを再設定しなくても、ツリーを拡張することもできます。このトポロジーの例を以下に示します。

図4.4 ファンアウトトポロジーでのアドレスフェデレーション

ファンアウトトポロジーのフェデレーションを設定する場合は、アドレスポリシーの max-hops プロパティーを n-1 の値に設定します。ここで、n ツリー内のレベル数になります。たとえば、上記の fan-out トポロジーでは、max-hops の値は 2 に設定されます。これにより、ツリー内のすべてのアドレスがメッセージが 1 度だけ 見えるようになります。