HornetQ でのトピック ブリッジの設定に問題があります (以前の質問に関連)。アイデアは次のとおりです。
- HornetQ サーバー A のトピックに通知が投稿される
- この通知は、コアブリッジを介して HornetQ サーバー B のトピックに送信されます
- クライアント アプリは、サーバー B から通知を受け取ります。
私が今抱えている問題は、サーバー B がダウンしている場合、通知がドロップされることです。私はキューを使用しますが、他のサブスクライバーが必要です。ブリッジが耐久性があり、メッセージがサーバー B のトピックに到達することを期待していました。設定方法は hornetq-configuration.xml にあります。
<queues>
<queue name="jms.topic.topic.dat.cds.internal">
<address>jms.topic.topic.dat.cds.internal</address>
</queue>
</queues>
<bridges>
<bridge name="cds-bridge">
<queue-name>jms.topic.topic.dat.cds.internal</queue-name>
<forwarding-address>jms.topic.topic.dat.cds</forwarding-address>
<reconnect-attempts>-1</reconnect-attempts>
<use-duplicate-detection>true</use-duplicate-detection>
<static-connectors>
<connector-ref>remote-connector</connector-ref>
</static-connectors>
</bridge>
</bridges>
これは、両方のサーバーが稼働している場合にのみ機能します。
ブリッジを永続的なサブスクライバーにする方法はありますか? 足りないものはありますか?
[編集 - 解決策] - これは機能します。秘訣は、トピック名が同じである必要があることです。
<queues>
<queue name="jms.topic.topic.dat.cds">
<address>jms.topic.topic.dat.cds</address>
</queue>
<bridges>
<bridge name="cds-bridge">
<queue-name>jms.topic.topic.dat.cds</queue-name>
<forwarding-address>jms.topic.topic.dat.cds</forwarding-address>
<reconnect-attempts>-1</reconnect-attempts>
<use-duplicate-detection>true</use-duplicate-detection>
<static-connectors>
<connector-ref>remote-connector</connector-ref>
</static-connectors>
</bridge>
</bridges>