4

有人可以告诉我 mod_jk 与 mod_cluster 的优缺点。

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

4

1 回答 1

12

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

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

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

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

总而言之,尽管您的负载平衡用例很简单,但 mod_cluster 提供了更好的性能和可扩展性。

您可以在JBoss 站点中查找有关 mod_cluster的更多信息,以及它的文档页面

于 2012-11-28T22:22:53.587 回答