redis+tomcat集群问题
来源:6-12 单点登录Redis存储Session及SessionId问题说明与集群实战-2
_收藏从未停止
2018-03-28
我刚刚做集群测试单点登陆的时候发现,我启动了两个Tomcat,然后有一个我停掉了。然后我在用nginx集群的那个域名去访问,结果发现当他访问到9080的时候(也就是那个停掉的服务,页面会一直旋转,隔一会才会转发到8080).那这样不是很慢嘛,两个服务器,挂了一台,当请求访问到挂的那台服务器上的时候,不能马上转发,而是要等待一会才会转发?老师请问这个怎么解决?
4回答
-
Geely
2018-03-31
你好,同学,很好的一个问题,课程中都采用一台机器,是为了模拟这个环境。
是这样的,实际生产环境的时候会使用keepalive,来做心跳检查,我们会新增心跳检查的一个url,检测http 请求是否是200,如果例如Atomcat现在在发布,在重启过程中,那就是不是200,所以这个时候ng把这个节点剔除掉。B的tomcat还能在线上提供服务。
所以例如大型集群,有100台机器的话,我们现在单位的线上环境主要的门户是有260台机器,肯定不能所有机器同时发布重启tomcat。而是采用group的概念,每组1-20台一起重启,更新最新代码,然后重启好之后,心跳检查好之后,会自动把节点放进来。然后21-40台机器继续发布
60 -
loubobooo
2018-04-01
本地一般是不会做集群测试,可以直接调线上的测试环境的服务器。针对挂掉这个问题,geely大佬回答的挺好的了,一般我们也是会在Nginx再加一层高可用,也就是KeepAlive(心跳检测机制),来解决挂掉的问题。
00 -
_收藏从未停止
提问者
2018-03-29
本地测试
00 -
polo哦
2018-03-29
是本地测试吗~如果线上应该是没有问题的,我测的线上就是8080挂了,然后都访问9080速度没啥区别
00
相似问题