2011-10-02 89 views
1

我们正在设计一个Java客户端(将部署在Tomcat,Windows 2008 R2上),这需要用户订阅Sonic MQ上的一些JMS主题。为Java客户端实现故障转移模式的最佳方式

客户端希望对此Java客户端进行冗余备份,并且在任何时间点,只有一个订阅者应该订阅主题。

我们的要求与此类似post

是否有任何标准化的开源项目是为此目的而构建的,或者我们必须编写自己的代码来检查服务器的运行状况(耗时)? 实现此Java客户端的最佳方式是什么?

我们正在探索下面的技术消费JMS消息:

  • Spring集成
  • Apache的骆驼

我们是在正确的方向前进?我们应该能够开始/停止对这些话题的订阅。

回答

1

阿帕奇骆驼有这样的开箱检查this。它实现了EAI负载平衡器模式。您可以选择“故障转移”策略。似乎在使用Exception来决定下一个处理器。

其他方法可以在订户之间实现简单的基于自定义jms的listenbeats,以跟踪对方的健康和平衡负载或故障转移。每个订户可以跟踪他们想要处理的内容。例如,从您提供的链接中,每个用户都知道它正在监听的主题,并在心跳失败的情况下继续接收来自其他用户的听力故障转移侦听器将开始为失败的侦听器提供消息。我认为你可以使用JMS消息选择器来实现过滤器。开始的一个很好的参考可以是this Javaworld上的旧文章。

相关问题