我有通过负载均衡器启动的客户端请求,并路由到最不加权的Tomcat服务器进行处理。
当客户端命中目标Tomcat服务器时,对客户端的响应包含要用于第二个请求的绝对URL。 这基本上消除了负载均衡器,允许客户端在客户端会话的生命周期内直接与Tomcat实例通信。
ISSUE: 问题是通过负载均衡器的第一个请求是创建一个SESSION,然后直接向Tomcat发出的第二个请求为单个客户端创建了第二个SESSION。第一个SESSION刚刚未使用,最终到期。
问题: 如何在第二个请求上连接客户端,返回到第一个请求(通过负载均衡器)创建的SESSION?
更新 我在JMeter中对此进行了测试,没有任何运气连接会话。
请求一个:
http://loadbalancer:80/page1.jsp
响应标题:
Set-Cookie: JSESSIONID=070894D435A46DF60AFE506018018325; Path=/
然后第二个请求是:
http://directTomcat:8080/page2.jsp?token1=123&token2=xyz;JSESSIONID=070894D435A46DF60AFE506018018325
[no cookies]
第二个响应标题:
Set-Cookie: JSESSIONID=1081A016CBA9B3AA7E7C38EF775C04F7; Path=/
我也尝试过:
http://directTomcat:8080/page2.jsp?token1=123&token2=xyz&JSESSIONID=070894D435A46DF60AFE506018018325
但这也没有用。
在发出第二个请求之前,是否有必要在客户端上将JSESSIONID设置为cookie?