mod_jk vs mod_cluster

时间:2012-11-28 16:04:52

标签: spring tomcat jboss mod-jk

有人可以告诉我mod_jk与mod_cluster的专业人士和骗子。

我们希望进行非常简单的负载平衡。我们将使用粘性会话,如果一台服务器出现故障,只需要将新请求路由到新服务器。我觉得mod_jk做到了这一点并做得很好,为什么我需要mod_cluster?

1 个答案:

答案 0 :(得分:12)

如果你的JBoss版本是5.x或更高版本,你应该使用mod_cluster,它会比mod_jk提供更好的性能和可靠性。这里有一些原因:

  • 在应用服务器之间更好地加载balacing :负载均衡逻辑是根据应用服务器直接提供的信息和指标计算的(请记住,他们有关于其负载的第一手资料),相比之下使用mod_jk,逻辑由代理本身计算。为此,mod_cluster使用服务器和代理之间的额外连接(数据中的一部分),用于发送此负载信息。
  • 与服务器中部署的应用程序的生命周期更好地集成:服务器使代理通知每个相应节点中应用程序的更改(例如,如果您在其中一个节点中取消部署应用程序)节点,节点会立即通知代理(mod_cluster),避免这种不方便的404错误。
  • 它不需要ajp :您也可以将它与http或https一起使用。
  • 更好地管理服务器生命周期事件:当服务器关闭或重新启动时,它会通知代理其状态,以便代理可以自动重新配置。

你可以使用粘性会话以及mod集群,当然,如果其中一个节点出现故障,mod集群将无助于保持用户会话(因为它会与其他平衡器一起发生,除非你'在群集中的JBoss节点)。但是由于上面给出的原因(跟踪服务器生命周期事件,主要是更好的负载平衡),如果其中一个服务器出现故障,mod集群将更好地管理它并对用户更透明(代理将被通知立即,所以它永远不会向该节点发送请求,直到它被告知它已重新启动)。

请记住,您可以将mod_cluster与JBoss AS / EAP 5.x或JBoss Web 2.1.1或更高版本一起使用(对于Tomcat,我认为它是版本6或更高版本)。

总而言之,虽然您的负载平衡用例很简单,但mod_cluster提供了更好的性能和可伸缩性。

您可以在JBoss site for mod_cluster及其documentation page中查找更多信息。