您的位置:首页 > 其它

两个应用相互调用导致的session丢失问题

2016-08-08 11:42 309 查看
问题是这样的,有两个应用,这两个应用有相互调用关系,而且是双向调用,A会调用B,B也会调用A,且通过nginx对后台的两个tomcat进行负载均衡,结果在访问时就会不时的出现session丢失,F12查看route不停的改变,提示重新登录的错误!如果后台是单机的tomcat,则不会有上述问题。

经过不停的思考和尝试,一共思考出了两个解决方案,并且成功测试通过!

解决方案如下:

1、修改nginx负载均衡策略,由原来的sticky改为ip_hash;

2、负载均衡策略不动,还是使用sticky,只不过sticky要多些配置,如下:

upstream            loadbalancer_01{

    sticky name=route1;//目的是要保证两个route的name是不一样的
   server srv1.example.com;

   server srv2.example.com;

   server srv3.example.com;

}

upstream             loadbalancer_02{

    sticky name=route2; //目的是要保证两个route的name是不一样的
   server srv1.example.com;

   server srv2.example.com;

   server srv3.example.com;

}

原因分析:两个应用的负载均衡器的route的名字相同,默认都叫route,导致两个应用的route相互覆盖!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐