Jms HornetQ主题到主题桥接丢弃消息
我在HornetQ()中设置主题桥时遇到问题。这个想法是:Jms HornetQ主题到主题桥接丢弃消息,jms,hornetq,Jms,Hornetq,我在HornetQ()中设置主题桥时遇到问题。这个想法是: 通知将发布到HornetQ服务器A上的主题 此通知通过核心网桥发送到HornetQ服务器B上的主题 客户端应用程序从服务器B获取通知 我现在遇到的问题是,如果服务器B关闭,通知将被删除。我会使用队列,但我们需要其他订户。我希望这座桥能够经久耐用,并且消息能够到达服务器B上的主题。我设置它的方式是在hornetq-configuration.xml中: <queues> <queue name="jms.to
- 通知将发布到HornetQ服务器A上的主题
- 此通知通过核心网桥发送到HornetQ服务器B上的主题
- 客户端应用程序从服务器B获取通知
<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>
jms.topic.topic.dat.cds.internal
jms.topic.topic.dat.cds.internal
jms.topic.topic.dat.cds
-1
真的
远程连接器
这仅在两台服务器都已启动时起作用
有没有办法使网桥成为耐用的用户?有什么我遗漏的吗
[编辑-解决方案]-这很有效。诀窍在于主题名称必须相同
<queues>
<queue name="jms.topic.topic.dat.cds">
<address>jms.topic.topic.dat.cds</address>
</queue>
jms.topic.topic.dat.cds
jms.topic.topic.dat.cds
jms.topic.topic.dat.cds
-1
真的
远程连接器
假设您有jms.topic.SomeTopic主题
您可以按如下方式创建核心队列:
<queues>
<queue name="SomeTopicBridge">
<address>jms.topic.SomeTopic</address>
</queue>
</queues>
jms.topic.SomeTopic
请注意,网桥队列上的地址与主题名称相同
HornetQ上的持久订阅只是主题地址上的核心队列
这样,消息将等待激活,直到您重新启动目标服务器
如果这不能回答你的问题,请提供我更多的细节,我将张贴编辑此答案,以更好地解决你的问题
就您的情况而言,您的地址应如下所示:
<queues>
<queue name="cds-bridge-queue">
<address>jms.topic.topic.dat.cds</address>
</queue>
</queues>
jms.topic.topic.dat.cds
这样,您将在主题地址上创建一个核心队列,即使网桥离线,该核心队列也将接收发送到主题的所有消息。我想这就是我上面提到的。核心队列是“jms.topic.topic.dat.cds.internal”。它通过桥转发到“jms.topic.topic.dat.cds”。如果网桥关闭(即第二台服务器脱机),主题消息将丢失。我希望网桥作为持久订阅者发挥作用,并始终保留主题消息,直到网桥另一侧的主题可用为止。源位置的主题名称是什么?看起来您的地址搞错了,“jms.topic.topic.dat.cds.internal”是桥源端的主题。“jms.topic.topic.dat.cds”是消费者端的主题。注意:上面的xml是从源端的配置中剪切出来的。目标端只是一个没有特殊配置的主题。这就是你当时犯的错误。。队列的地址应为jms.topic.topic.dat.cds
<queues>
<queue name="cds-bridge-queue">
<address>jms.topic.topic.dat.cds</address>
</queue>
</queues>