`
shootyou
  • 浏览: 84446 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

tomcat集群环境下,JSP页面更新同步,页面展示未更新 的问题排查

阅读更多

背景:

企业环境下使用域名轮询 + 多台tomcat 来平衡负载,tomcat之间共享数据库,因为没用到session所以并没有做tomcat集群的配置。多个tomcat之间会使用rsync文件同步来同步工程文件,举例说来就是,用一台服务器作为主服务器,一旦主服务器上的jsp文件更新那么会定时同步到其他服务器上去。

问题描述:

主服务器上jsp页面更新,主服务器访问页面更新生效,从服务器访问页面没有更新。

问题猜想1:

更新没有生效首先就怀疑页面文件同步出了问题。

问题排查1:

主从服务器上取下页面文件进行对比,发现页面文件无差异,但是通过tomcat显示出来的页面就是没更新。

问题猜想2:

tomcat在更新jsp之后没有及时编译jsp文件为class,导致页面访问效果没有更新。

问题排查2:

进入到tomcat的work目录下面,将主从服务器的页面编译后的java和class文件做了比较,发现不一致,问题果然出在这里。

那么为什么jsp页面更新了之后tomcat没有检测到更新并且自动更新编译成java或者class呢?

结论:

首先,我们确定配置了<Context reloadable="true">,tomcat会去检测jsp的更新重新编译。

然后,再深入一点了解tomcat的检测机制,我们发现,tomcat是这么做的:

tomcat是根据文件的更新日期判断jsp文件是不是比现有的编译好的.java文件新来决定是否重新编译。(这个来源于资料,没有验证:http://daidalei321.iteye.com/blog/909999

那么极有可能问题就出在这里,查看了下发现主从服务器的时间果然没有同步,从服务器比主服务器快了几分钟。假设从服务器比主服务器快了10分钟,这样的话就可能发生如下的过程:

主服务器 : 时间00:00(新增Jsp文件) -> 时间00:01(更新jsp文件,文件更新时间戳为00:01)

从服务器 : 时间00:10(同步得JSP,编译class时间戳为00:10) -> 时间00:11(得到更新的jsp文件更新时间戳为00:01比本地编译的class00:10晚,判断为不更新)

于是乎杯具产生了。

所以这种情况下的解决办法就是同步主从服务器系统时间。

分享到:
评论
1 楼 herojay2013 2012-11-05  
<Context reloadable="true">,

相关推荐

    tomcat集群部署.

    当我们需要处理高并发、负载均衡等需求时,单个Tomcat服务器可能无法满足,这时就需要进行Tomcat集群部署。下面将详细介绍Tomcat集群部署的相关知识点。 1. **集群的概念**: 集群是一种通过多台服务器协同工作来...

    memcatched+tomcat6集群1.9.jar

    标题中的"memcached+tomcat6集群1.9.jar"提到了两个关键概念:Memcached和Tomcat集群,以及它们的版本号1.9。这表明我们正在处理一个与使用Memcached缓存服务来增强Tomcat 6集群性能相关的Java应用程序。 Memcached...

    tomcat集群配置文件样例

    本示例主要关注的是如何通过JK模块(mod_jk)配置Tomcat集群。 首先,理解Tomcat集群的概念。Tomcat集群是指多个Tomcat实例协同工作,共同处理来自客户端的请求,提供负载均衡和故障转移的能力。这样可以提高系统的...

    Apache+Tomcat+Linux集群和负载均衡

    - 通过浏览器访问`http://172.16.116.1/index.jsp`,检查是否能够成功访问,并观察日志文件确认请求是否被正确地分发至Tomcat集群中的不同节点。 #### 四、注意事项 1. **权限问题**: 确保所有操作均以具有足够...

    nginx+tomcat集群简单参考

    1. **部署多台 `tomcat`**:在同一网络环境下,部署多台 `tomcat` 实例,确保应用的高可用性。 2. **配置 `nginx` 反向代理**:在 `nginx` 配置文件(`nginx.conf`)中,设置多个上游服务器,指定为 `tomcat` 实例的...

    apache集群tomcat的所有附件及操作说明

    Apache集群和Tomcat是两种广泛使用的开源软件,用于构建高性能、高可用性的Web应用程序环境。...本资源包包含了在Apache上设置Tomcat...通过遵循提供的操作说明,用户应该能够成功建立一个高可用的Apache-Tomcat集群环境。

    搭建apache+tomcat集群时需要的连接器

    Apache作为前端服务器处理静态内容,而Tomcat则作为后端应用服务器处理Java Servlet和JSP。在这种架构中,连接器起着至关重要的...通过熟练掌握mod_jk的配置和使用,你可以有效地提升Apache+Tomcat集群的效率和稳定性。

    tomcat集群部署

    在IT行业中,Tomcat是一个...在Linux环境下,通过合理配置和负载均衡,我们可以构建出稳定、高效的Tomcat集群。在实际操作中,需注意session管理和服务器间的通信效率,以及对集群状态的持续监控,确保系统的正常运行。

    apache 和 tomcat 集成、集群

    **Apache和Tomcat集群** 1. **集群的目的**: 集群是为了提高可用性和性能,通过多个服务器分担工作负载,当单个节点出现故障时,其他节点可以接管服务,确保业务连续性。 2. **负载均衡**: 负载均衡器可以是硬件...

    Apache+Jboss(Tomcat)集群配置

    通过以上步骤,你可以构建一个基本的Apache+Jboss/Tomcat集群环境,实现应用的高可用和负载均衡。在实际生产环境中,还需要考虑更多的因素,如监控、安全、性能调优等,以保证整个集群的稳定性和效率。

    tomcat群集配置

    在进行Tomcat集群配置之前,我们需要确保有一个良好的运行环境。根据提供的信息,我们所处的环境为:Windows 2003 Server SP4 + J2SDK1.5.0 + Tomcat 5.5.9。 1. **安装JDK1.5.0**: - 确保Java环境已正确安装。若...

    两小时精通Tomcat

    理解Tomcat的目录结构至关重要,例如`webapps`存放Web应用,`conf`包含配置文件,`logs`存储日志,`temp`用于临时文件,以及`work`保存编译后的JSP页面。 四、部署Web应用 你可以通过将WAR文件放入`webapps`目录或...

    apache-tomcat-6.0.10

    10. **持续发展与更新**:Apache Tomcat项目一直保持活跃,不断推出新版本以修复已知问题,增强功能和性能,提升安全性。从6.0.10版本至今,Tomcat已经发展到了9.x版本,并且即将进入10.x时代。 了解和掌握这些知识...

    tomcat源码基于6.0

    4. **Cluster**:Tomcat集群功能,用于在多个服务器之间进行负载均衡和session复制,提高系统的可用性和扩展性。 5. **Naming**:Tomcat提供了JNDI(Java Naming and Directory Interface)服务,使得应用可以查找...

    tomcat 7.0

    1. 通过复制和同步session数据,可以实现Tomcat集群,提高可用性和扩展性。 2. 配合负载均衡器,可以将请求分发到不同的Tomcat实例,以平衡负载。 总结,Apache Tomcat 7.0.6是一个强大的Java Web服务器,提供了...

    tomcat-8.5.24_for_Linux CSDN 下载

    7. **集群与负载均衡**: 对于高并发访问需求,可以通过配置Tomcat集群和负载均衡来分散请求,提高系统的可用性和响应速度。这通常需要结合其他软件如Nginx或Apache HTTP Server进行反向代理。 8. **部署与更新**: ...

    Tomcat5.0.28源代码

    3. **会话管理**:Tomcat如何实现会话跟踪,包括会话的创建、更新、过期和销毁,以及跨服务器的会话复制(在集群环境中)。 4. **请求和响应处理**:Coyote组件如何处理HTTP请求,以及如何构建响应并发送回客户端。...

    TOMCAT权威指南.pdf

    7. **集群与负载均衡**:对于高可用性和扩展性需求,书中会讲解如何配置Tomcat集群,实现请求的负载均衡,以及session复制和共享,以保证服务的连续性。 8. **与其他应用服务器集成**:Tomcat可以与其他Java EE...

Global site tag (gtag.js) - Google Analytics