1

我希望我的 ActiveMQ 有两个活跃的代理。

一个是主要的,第二个在第一个不可用时采取行动。

如何在 activemq.xml 文件中定义这个代理?

我尝试通过简单地复制并粘贴默认代理并更改端口和名称来添加代理,但是在尝试运行 activemq 时会引发异常。

此外,我如何知道哪个代理正在积极管理我队列中传入的传出消息?

谢谢。

4

2 回答 2

1

当主代理不可用时,通过在客户端上使用故障转移协议,消息将被路由到从代理,但请确保 randomize=false。

例如:故障转移:(tcp://master:61616,tcp://slave:61616)?randomize=false

当主代理失败并且消息仍在主代理的数据存储中等待时,要使用这些等待消息,请将从代理和主代理配置到相同的 JDBC 数据存储。

通过将主代理和从代理配置为相同的 JDBC 数据存储,您的主代理将锁定 JDBC 数据存储,而从代理将仅在主代理失败时才变为活动状态,这将释放对数据存储的锁定。

确保主代理在上述配置中的从代理之前启动。

于 2013-01-29T23:09:33.837 回答
1

您可以使用JMS 客户端中的failover://协议来实现这一点。有关如何配置故障转移协议的详细信息,请参阅故障转移传输参考页面。

这是ActiveMQ 3.x 中的可靠://协议和大于 3.x 的 ActiveMQ 版本中的故障转移://

这是一篇好文章

于 2013-01-29T10:40:15.223 回答