2

我在 2 个连接到同一个 MySQL 后端数据库的 tomcat 前面有一个 Apache Web 服务器。

我需要基于名为“projectid”的 URL 参数对两个 tomcat 之间的传入请求进行负载平衡。例如,所有偶数项目 id 都可以使用 tomcat 1 服务,奇数请求可以使用 tomcat 2。

这是必需的,因为用户可能在 tomcat 1 的项目中启动作业,而 tomcat 2 不会知道这些作业当前未存储在数据库中。

有没有办法使用 mod-proxy-load-balancing 来实现这一点?

4

1 回答 1

0

我不知道已经存在这样的负载算法。但是,请记住,最常见的负载平衡结果(尤其是当您显然拥有服务器端状态时)是一个粘性会话:您只是平衡初始请求。之后,所有请求通常都被定向到同一台服务器。

我通常建议不要分发会话数据,因为它会给每个请求增加一些通常不必要的性能损失,从而抵消集群带来的改进性能。不过,这可能会在实际安装中发生变化,这只是第一条经验法则。

您也许可以使用 mod-proxy-load-balancing 创建自己的负载平衡算法(您需要在配置文件中配置算法),但我相信您最好花时间修复您的实现,或实现业务特定的逻辑检查所有集群机器是否正在运行作业。

于 2013-09-12T14:17:13.783 回答