要对您的应用程序进行负载平衡,您需要使用同一个应用程序运行两个或多个 Tomcat 实例。您可以在同一台机器上的不同端口(例如 www.myapp.com:8080 和 www.myapp.com:9090)上或在同一端口上的不同机器上运行两个实例(例如 www1.myapp.com:8080 和 www2. myapp.com:8080)。通常这些实例共享相同的后端数据存储。每个 Tomcat 都是它自己的网络服务器,因此您将运行多个网络服务器。
因为您现在有两个相同的实例,所以用户可以使用这两个实例中的任何一个。如果他们当前使用的机器出现问题,他们也可以从一个切换到另一个。但是您不希望您的用户必须手动选择机器或交换。这就是负载均衡器的用武之地。
负载均衡器接收来自用户的请求并将其动态路由到您的负载均衡实例之一。负载均衡器也是一个 Web 服务器。它可以是像 BIG-IP F5 这样的硬件负载均衡器,也可以是像 Apache、nginx 甚至另一个 Tomcat 服务器这样的软件。
如果您使用 Apache Web 服务器进行负载平衡,您将需要一个 Apache 模块将请求传递到您的 Tomcat 服务器之一。通常这是 mod_jk 或 mod_proxy。
所以简短的回答是,如果您使用 Apache 作为负载均衡器,那么您必须使用 mod_jk(或 mod_proxy)。如果您使用另一个负载均衡器,则不能使用 mod_jk。
另请参阅Tomcat 负载均衡器解决方案