DWR遭遇集群

前几天,跟踪产品的运行状况时,发现每次登录时,都要下载几十KB的数据,查了一下,发现是DWR的engine.js。

查了一下DWR的相关文档,其官方文档提供了对engine.js进行缓存的方法,步骤如下:

      1、解压dwr.jar中的org/directwebremoting/engine.js到目录中;

      2、将其中226行到242行之外的所有内容剪切到新的文件:sengine.js;

      3、保存engine.js,并替换dwr.jar包中的org/directwebremoting/engine.js文件;

      4、将sengine.js同其他的js一起压缩使用。

在测试系统上升级后,发现更新的内容是变小了,不到1KB,但是发现第二次下载是内容不全,而生产系统上每次下载的内容都是全的,很奇怪。

 

后来使用HttpWatch对http Header进行分析,发现生产系统上对此文件的修改时间标示不同。通过研究DWR的源码,发现其对engine.js的修改标示使用了类的加载时间,也就是说,http header中的修改时间是由类的加载时间决定,生产系统中采用了集群部署,共有三四台应用层,由于每台应用层启动的时间有差异,导致每台应用层上engine.js的修改时间不相同,最终导致同一用户每次登录时调度到不同的服务器上时都必须重新下载此文件。

 

最终还是按照官方的文档进行了升级,但engine.js还是每次会重新下载,只不过内容变小了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值