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 度だけ 見えるようになります。