1

我有通过 JMS(ActiveMQ + Camel)进行通信的 Java 应用程序(节点)。我有这样的情况:

1.) Node_1 将消息放入队列 2.) 消息在队列中等待一段时间,因为 Node_2 很忙 3.) Node_2 随时准备好消息

每个节点和 ActiveMQ 都在可分离的机器中。假设 Node_2 变得无法访问(可能机器刚刚崩溃)。通知 Node_1 Node_2 不可访问的最佳方式是什么?

我对这些技术并不完全熟悉。我注意到有某种不活动监视器,我认为它可能是一个很好的工具。不幸的是,我不知道也找不到是否可以使用它在 ActiveMQ 端运行自定义操作。如果 Node_2 不可访问,我可以在 ActiveMQ 中运行自定义操作吗?

4

1 回答 1

1

首先也是最重要的:消息传递和 MOM 的想法是,您不需要知道对方是否崩溃,因为一旦系统修复,消息将由 ActiveMQ 传递。

也就是说,您可以做的最好的事情是订阅来自ActiveMQ.Advisory.Consumer.Queue.<YOUR QUEUE>或者ActiveMQ.Advisory.Consumer.Queue.>如果您有很多队列的消息。这样做,您将能够(从节点 1)看到节点 2 已停止(或重新启动)以使用指示崩溃或类似情况的消息。

在这里阅读更多http://activemq.apache.org/advisory-message.html

于 2013-06-25T05:39:05.270 回答