如何实现JBoss/Blazeds群集和通道故障切换

如何实现JBoss/Blazeds群集和通道故障切换,jboss,blazeds,cluster-computing,failover,channel,Jboss,Blazeds,Cluster Computing,Failover,Channel,我一直在使用jboss和blazeds集群化。 我现在得到的是: 2个Jboss实例,在所有模式下运行 正如Jboss文档所建议的那样,一个带有apache和mod_jk的负载平衡器 spring/flex集成应用程序 一个flex应用程序,我不想在我的一个JBoss实例崩溃时抛出错误 我发现Adobe文档非常缺乏,而且在集群、jgroups和平衡方面是新手,我找不到如何在集群环境中部署我的应用程序 实际上,这个解决方案可以很好地处理远程调用。如果一个jboss实例宕机,rpc将被路由到另一个实

我一直在使用jboss和blazeds集群化。 我现在得到的是:

  • 2个Jboss实例,在所有模式下运行
  • 正如Jboss文档所建议的那样,一个带有apache和mod_jk的负载平衡器
  • spring/flex集成应用程序
  • 一个flex应用程序,我不想在我的一个JBoss实例崩溃时抛出错误
  • 我发现Adobe文档非常缺乏,而且在集群、jgroups和平衡方面是新手,我找不到如何在集群环境中部署我的应用程序

    实际上,这个解决方案可以很好地处理远程调用。如果一个jboss实例宕机,rpc将被路由到另一个实例。不起作用的是推送消息,因为如果客户端连接到JBossA,而JBossA发生故障,客户端将显示一条错误消息,说明它无法到达JBossA,此时它应该故障切换到JBossB,而用户不会注意到任何情况

    据我所知,如果配置正确,blazeds应该在连接时告诉flex客户端故障转移服务器。然后,如果flex客户端无法连接到主服务器,它将转到另一个服务器。但对我来说,最困难的部分是到达那里。 有人能给我指一下正确的方向吗?
    提前感谢

    如果您的apache web服务器位于客户端和JBoss服务器之间,并且mod_jk处理apache和JBoss之间的通信,那么您的故障切换要求应该已经满足了

    mod_jk将检测任何JBoss服务器是否出现故障,并向另一台服务器发送请求。就客户机而言,他们只看到一台服务器,即apache服务器。他们看不到它背后的JBoss服务器

    我对BlazeDS群集一无所知,但我猜它有某种形式的手动故障切换机制,它告诉客户端服务器地址列表,客户端选择一个有效的。这只在你没有mod_jk中间人的情况下才有必要,所以希望你可以忽略blazeds集群


    当然,事情可能会变得复杂得多,例如当您需要JBoss服务器之间进行通信时(例如,会话复制、集群JMS、分布式缓存等),但是如果您不需要这些,那么您可以安全地忽略它。

    很抱歉,我忘了指定使用此配置时,经典故障切换是可以的。缺少的是关于推送目标的故障转移。我将编辑我的答案!实际上,我能够让集群blazeds应用程序工作,但我被迫不使用jboss自己的集群机制。如果有人能告诉我怎么做,我仍然有兴趣知道。