|
|
トピックの数やサブスクライバの数が増えてくると、それを効果的に管理する機能が必要となります。
FioranoMQ では、トピック間に親子関係を定義できる "階層化トピック" と呼ぶ機能を導入しました。
JMS 仕様では、ディストネーション間の関係を定義できませんが、FioranoMQ では、トピック間に親子関係を持たせることができます。
例えば、"network" という親のトピックの下に "network.router" という子のトピックを設け、さらに、その下に "network.router.cisco" という孫のトピックを設定できます (下図を参照)。
階層化トピック
パブリッシャは、この中のいづれかのトピックにメッセージに送ります。
サブスクライバは、
- "network" をリッスンするサブスクライバ
- "network.router" をリッスンするサブスクライバ
- "network.router.cisco" をリッスンするサブスクライバ
- "network.switch" をリッスンするサブスクライバ
というようにリッスンするトピックを選択できます。
親のトピックをリッスンしているサブスクライバは、子のトピックに送られてきたメッセージも受け取ることができます。
例えば、"network.router.cisco" トピックに送られてきたメッセージは、"network.router.cisco" をリッスンしているサブスクライバだけでなく、親の "network.router" トピックをリッスンしているサブスクライバ、さらにその親の "network" トピックをリッスンしているサブスクライバにも配信されます。
階層化トピックによって、ディストネーション (トピック) の管理、整理が容易になるとともに、必要としないサブスクライバへメッセージを配信することを避けられるため、配信効率が向上します。
|
|
|
|
|
|