我有一个简单的 Web 服务器配置,包括 Apache Web 服务器和 Tomcat。例如,我们有 2 台服务器。我计划扩大规模。当然,我们很快就会需要一个负载平衡解决方案。我应该使用 Apache 来为 Tomcat 服务器提供负载平衡,还是使用其他解决方案?
我应该使用一些外部软件(如 HaProxy)来进行负载平衡,而不是使用 mod_proxy_http 等 Apache 服务器,这有什么原因吗?当您在 Linux 环境中搜索负载平衡时,会发现很多有关 Haproxy 的内容,但没有有关 Apache 服务器的内容,这是为什么!?
谢谢你!
答案1
HAProxy 使用基于单个进程事件的模型,而对于像 Apache 这样的系统,我相信您有基于线程 (mpm_worked) 或基于进程 (prefork) 的模型。假设我的观点是正确的,mod_proxy 仍将基于每个连接的线程或进程(我可能完全错了),当您达到更高的负载水平时,这将占用更多的系统资源。
此外,从我个人的经验来看,为做某件事而构建的东西往往比瑞士军刀解决方案更擅长做这件事。例如,使用 HAProxy,您可以有多种选择来处理客户端和负载平衡器之间以及负载平衡器和服务器之间的保持连接。我不确定 mod_proxy 之类的东西是否会提供这种灵活性。