apache负载均衡的配置时不使用session的项目如何配置一个用户始终只访问一个server

在负载均衡不使用session的项目的时,有些应用我们需要控制一个用户只访问一个server.比如一个需要处理很长时间的业务,前台用ajax实现进度条的情况。后台处理到那一步需要放到静态变量中。这样如果前台ajax访问了另一台,则进度条显示就会不正确。

worker.controller.sticky_session=1这里如果配置为1,apache会通过seesionId来判断进那个server.

然后在tomcat的server.xml配置jvmRoute。如果配置了jvmRoute,tomcat就会在seesionId后面加上这个值。

<Enginename="Catalina"defaultHost="localhost"jvmRoute="tomcat2">

做完前2步骤还需要一步。在项目的过滤器中加requestgetSession().getId();

如果不加。请求将不能根据seesionId确定由那个server执行

相关推荐