背景:
企业环境下使用域名轮询 + 多台tomcat 来平衡负载,tomcat之间共享数据库,因为没用到session所以并没有做tomcat集群的配置。多个tomcat之间会使用rsync文件同步来同步工程文件,举例说来就是,用一台服务器作为主服务器,一旦主服务器上的jsp文件更新那么会定时同步到其他服务器上去。
问题描述:
主服务器上jsp页面更新,主服务器访问页面更新生效,从服务器访问页面没有更新。
问题猜想1:
更新没有生效首先就怀疑页面文件同步出了问题。
问题排查1:
主从服务器上取下页面文件进行对比,发现页面文件无差异,但是通过tomcat显示出来的页面就是没更新。
问题猜想2:
tomcat在更新jsp之后没有及时编译jsp文件为class,导致页面访问效果没有更新。
问题排查2:
进入到tomcat的work目录下面,将主从服务器的页面编译后的java和class文件做了比较,发现不一致,问题果然出在这里。
那么为什么jsp页面更新了之后tomcat

在多台Tomcat组成的集群环境中,通过域名轮询和数据库共享实现负载均衡。使用rsync同步文件时,出现主服务器JSP更新后,从服务器页面未更新的问题。经检查发现,尽管页面文件相同,但编译后的class文件不同。原因是服务器时间不同步,导致Tomcat基于文件时间戳的自动编译机制失效。解决方案是同步主从服务器的系统时间。
最低0.47元/天 解锁文章
437

被折叠的 条评论
为什么被折叠?



