代理如何从jdbc持久存储中获取消息?

时间:2013-05-13 03:48:42

标签: activemq

我想询问有关actimvemq配置的可行性。我必须保证四个条件。

1)一台服务器中的每个生产者,消费者和代理都加载在同一个jvm上。

2)一台服务器中的每个生产者必须向同一服务器的消费者传递消息。

3)如果其中一个服务器被杀死并且在服务器中保留了一些消息,我希望其他服务器的代理获取被杀死节点的消息并执行而不是被杀死的节点。消息将在jdbc数据库存储中。

您能否推荐替代方法或对此实施做出解释?

1 个答案:

答案 0 :(得分:0)

困境在于您希望进行主动 - 主动设置(群集I假设),但希望在群集内部进行故障转移。

您无法让活动节点获取失败的代理DB并从那里继续。你可以做的是在每台机器上创建一个额外的代理设置,作为第一台机器的奴隶。

查看文档 http://activemq.apache.org/masterslave.html

然后每台机器都有另一台机器的故障转移。这样就不会有任何消息被搁浅(假设只有一台机器出现故障)。这样不会花费比RAM更多的RAM来保持从机空闲。但是,随着时间的推移,解决方案对于托管和维护来说有点复杂。

我不认为你需要在客户端做很多工作,因为他们连接到本地代理(如果服务器关闭,生产者/消费者也是如此)。

Cluster + Master Slave