添加ActiveMQ代理

时间:2013-01-29 10:20:10

标签: java jms activemq

我希望我的ActiveMQ有两个活跃的经纪人。

第一个是第一个,第二个在第一个不可用时动作。

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

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

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

感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用JMS客户端中的 failover:// 协议实现此目的。有关如何配置故障转移协议的详细信息,请参阅Failover Transport Reference页面。

这是ActiveMQ 3.x中的 reliable:// 协议,以及大于3.x的ActiveMQ版本中的故障转移://

这是一个很好的article

答案 1 :(得分:1)

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

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

当主代理失败并且消息仍在主代理的数据存储中等待时,要消耗那些等待的消息,请将slave代理和主代理配置为相同的JDBC数据存储。

通过将主代理和从代理配置到同一个JDBC数据存储,主代理将锁定JDBC数据存储,只有当主代理失败时,从属代理才会变为活动状态,这将释放对数据存储的锁定。

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