基于 URL 模式的 Apache HTTP 负载均衡

标签 apache tomcat load load-balancing

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

我需要根据名为“projectid”的 URL 参数对两个 tomcat 之间的传入请求进行负载平衡。例如,所有偶数项目 ID 可能由 tomcat 1 提供,奇数请求由 tomcat 2 提供。

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

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

最佳答案

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

我通常建议不要分发 session 数据,因为它会给每个请求增加一些通常不必要的性能影响,抵消了您可以通过集群获得的改进性能。不过,这可能会在实际安装中发生变化,这只是第一条经验法则。

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

关于基于 URL 模式的 Apache HTTP 负载均衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18766567/

相关文章:

Android 5.1 加载 64 位共享库失败,因为它的依赖库没有找到,但它确实存在

objective-c - 从特定位置 objective-c 加载文本文件

javascript - jQuery load() 函数更改输入文本的高度

php - UTF-8贯穿始终

apache - Openfire 和 strophe.js : not allowed by Access-Control-Allow-Origin

apache - SimplePostTool : FATAL: Connection error in Solr when trying to index

hibernate - java.lang.ClassNotFoundException : org. hibernate 代理.EntityNotFoundDelegate

java - Apache Http 客户端帮助 (POST)

apache - 如何在云tomcat服务器上部署java web应用程序

CAS 和 LDAP 的 Tomcat j_security 错误