我有两个后端服务器(所以有 2 个工作人员),我通过 session 在它们之间进行负载平衡。但是有一个问题:一旦我加载我的应用程序,它会发送多个请求并且负载均衡器选择第一个工作人员并且它向第二个工作人员发送一个请求(用于检查?),所以 jk-status 将始终将 1 个 session 放入第一个工作人员和第二个工作人员,当我在不同的浏览器(不同的 session )上加载应用程序时,负载均衡器将始终选择第一个工作人员,因为两个工作人员的 session 数相同。怎么办?
我使用 Apache 2.2、Tomcat 8.5.x 和 mod_jk 1.2.40
workers.properties 配置:
worker.list=jkstatus,router
worker.jkstatus.type=status
worker.router.type=lb
worker.router.balance_workers=worker1,worker2
worker.router.method=S
worker.router.sticky_session=true
worker.template.type=ajp13
worker.template.lbfactor=1
worker.template.socket_keepalive=true
worker.template.recovery_options=7
worker.worker1.reference=worker.template
worker.worker1.host=mysite.com
worker.worker1.port=8009
worker.worker1.redirect=worker2
worker.worker2.reference=worker.template
worker.worker2.host=mysecondsite.com
worker.worker2.port=8009
worker.worker2.redirect=worker1
最佳答案
某种情况迫使我从 workers.properties 切换到 httpd.conf 并使用 Proxy 和 Balancers(还更新了 Apache 和 mod_jk)并且一切正常。
关于Apache:按 session 进行负载平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51301538/