Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为Java客户端实现故障切换模式的最佳方法_Java_Client_Design Patterns_Failover - Fatal编程技术网

为Java客户端实现故障切换模式的最佳方法

为Java客户端实现故障切换模式的最佳方法,java,client,design-patterns,failover,Java,Client,Design Patterns,Failover,我们正在设计一个Java客户端(将部署在Tomcat、Windows 2008 R2上),它需要订阅Sonic MQ上的一些JMS主题 客户机希望该Java客户机具有冗余,并且在任何时候,只有一个订户可以订阅主题 我们的要求与此类似 是否有任何标准化的开源项目是为此目的而构建的,或者我们必须编写自己的代码来检查服务器的运行状况(耗时)? 实现这个Java客户机的最佳方式是什么 我们正在探索以下使用JMS消息的技术: Spring集成 阿帕奇骆驼 我们走的方向对吗?我们应该能够启动/停止对动态

我们正在设计一个Java客户端(将部署在Tomcat、Windows 2008 R2上),它需要订阅Sonic MQ上的一些JMS主题

客户机希望该Java客户机具有冗余,并且在任何时候,只有一个订户可以订阅主题

我们的要求与此类似

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

我们正在探索以下使用JMS消息的技术:

  • Spring集成
  • 阿帕奇骆驼

我们走的方向对吗?我们应该能够启动/停止对动态主题的订阅。

Apache Camel有这样的开箱即用复选框。它实现了EAI负载平衡器模式。您可以选择“故障转移”策略。似乎正在使用异常来决定下一步使用哪个处理器


另一种方法是在订阅者之间实现简单的基于jms的定制服务,以跟踪彼此的运行状况并平衡负载或故障切换。每个订户都可以跟踪他们要处理的内容。例如,通过您提供的链接,每个订阅服务器都知道它正在侦听的主题,并在心跳失败的情况下不断从其他订阅服务器接收hearbeat故障转移侦听器将开始为失败的侦听器接收消息。我认为您可以使用JMS消息选择器来实现过滤器。关于Javaworld的老文章是一个很好的开始参考

apachecamel有这样一个开箱即用的复选框。它实现了EAI负载平衡器模式。您可以选择“故障转移”策略。似乎正在使用异常来决定下一步使用哪个处理器

另一种方法是在订阅者之间实现简单的基于jms的定制服务,以跟踪彼此的运行状况并平衡负载或故障切换。每个订户都可以跟踪他们要处理的内容。例如,通过您提供的链接,每个订阅服务器都知道它正在侦听的主题,并在心跳失败的情况下不断从其他订阅服务器接收hearbeat故障转移侦听器将开始为失败的侦听器接收消息。我认为您可以使用JMS消息选择器来实现过滤器。关于Javaworld的老文章是一个很好的开始参考