为Java客户端实现故障切换模式的最佳方法
我们正在设计一个Java客户端(将部署在Tomcat、Windows 2008 R2上),它需要订阅Sonic MQ上的一些JMS主题 客户机希望该Java客户机具有冗余,并且在任何时候,只有一个订户可以订阅主题 我们的要求与此类似 是否有任何标准化的开源项目是为此目的而构建的,或者我们必须编写自己的代码来检查服务器的运行状况(耗时)? 实现这个Java客户机的最佳方式是什么 我们正在探索以下使用JMS消息的技术:为Java客户端实现故障切换模式的最佳方法,java,client,design-patterns,failover,Java,Client,Design Patterns,Failover,我们正在设计一个Java客户端(将部署在Tomcat、Windows 2008 R2上),它需要订阅Sonic MQ上的一些JMS主题 客户机希望该Java客户机具有冗余,并且在任何时候,只有一个订户可以订阅主题 我们的要求与此类似 是否有任何标准化的开源项目是为此目的而构建的,或者我们必须编写自己的代码来检查服务器的运行状况(耗时)? 实现这个Java客户机的最佳方式是什么 我们正在探索以下使用JMS消息的技术: Spring集成 阿帕奇骆驼 我们走的方向对吗?我们应该能够启动/停止对动态
- Spring集成
- 阿帕奇骆驼
我们走的方向对吗?我们应该能够启动/停止对动态主题的订阅。Apache Camel有这样的开箱即用复选框。它实现了EAI负载平衡器模式。您可以选择“故障转移”策略。似乎正在使用异常来决定下一步使用哪个处理器
另一种方法是在订阅者之间实现简单的基于jms的定制服务,以跟踪彼此的运行状况并平衡负载或故障切换。每个订户都可以跟踪他们要处理的内容。例如,通过您提供的链接,每个订阅服务器都知道它正在侦听的主题,并在心跳失败的情况下不断从其他订阅服务器接收hearbeat故障转移侦听器将开始为失败的侦听器接收消息。我认为您可以使用JMS消息选择器来实现过滤器。关于Javaworld的老文章是一个很好的开始参考 apachecamel有这样一个开箱即用的复选框。它实现了EAI负载平衡器模式。您可以选择“故障转移”策略。似乎正在使用异常来决定下一步使用哪个处理器 另一种方法是在订阅者之间实现简单的基于jms的定制服务,以跟踪彼此的运行状况并平衡负载或故障切换。每个订户都可以跟踪他们要处理的内容。例如,通过您提供的链接,每个订阅服务器都知道它正在侦听的主题,并在心跳失败的情况下不断从其他订阅服务器接收hearbeat故障转移侦听器将开始为失败的侦听器接收消息。我认为您可以使用JMS消息选择器来实现过滤器。关于Javaworld的老文章是一个很好的开始参考