我在2个tomcat前面有一个Apache Web服务器,它们连接到相同的MySQL后端数据库。
我需要基于名为“ projectid”的URL参数来平衡两个tomcat之间的传入请求。例如,所有的偶数项目ID都可以与tomcat 1一起使用,而奇数请求可以与tomcat 2一起使用。
这是必需的,因为用户可能会在tomcat 1不会启动的tomcat 1项目中启动作业,并且这些作业当前未存储在数据库中。
有没有办法使用mod-proxy-load-balancing实现此目的?
最佳答案
我不知道这种负载算法已经存在。但是,请记住,最常见的负载平衡结果(尤其是当您拥有服务器端状态时,显然是这样)是一个粘性会话:您仅在平衡初始请求。之后,所有请求通常都定向到同一服务器。
我通常建议不要分发会话数据,因为它会给每个请求增加一些通常不必要的性能损失,从而使您无法通过群集获得更好的性能。不过,这在实际安装中可能会有所更改,这只是第一手经验。
您可能可以使用mod-proxy-load-balancing创建您自己的负载平衡算法(您需要在config文件中配置该算法),但是我相信您最好将时间花费在修复实现或实现业务特定的逻辑上检查所有群集计算机上正在运行的作业。