软件版本: os: centOS 6.5 (阿里云) spring boot: 1.4.1 (自带的 tomcat 8.5.5 )
部署方式: java -jar xxx.war (直接运行 war 包方式) 端口 8081
cache 相关配置: spring.resources.cache-period = 1 spring.resources.chain.enabled = true
状况描述: 1.访问 www.abc.com:8081/a.html , a.html 返回 304 ,但会花费 1.5s , a.html 中的各种 css 和 js 也都返回 304 ,每个 15ms 左右。 2.在 20 秒(有可能是 15 秒,大概是 10 到 20 秒之间)内刷新此页,无论是 a.html 还是其中的资源,仍然返回 304 ,但 a.html 明显提升速度,仅花费 15ms 左右和其他资源一样,这 20 秒内反复刷新都很快,所有资源花费 15ms 左右。但是一旦超过 20s 后再访问, a.html 又会花费 1.5s 。 3.同样一台服务器,一个非 spring boot 的网站也在同时运行,用的是 tomcat 8 ,端口 8080 。这个网站就没有此问题。 4.访问接口或者 jsp 也同样,虽然每次都返回 200 ,但是也会出现和 1 、 2 描述的相同情况。 5.访问不存在的资源也会出现这种情况(返回 404 )。
思考: 1.由于访问所有资源(静态、接口)都会出现这种情况,所以应该不是静态资源缓存的问题,接口什么的没加过缓存。 2.由于同一台机器的其他服务都没问题,所以目前推断是 boot 自带的 tomcat 有问题。
想知道这种现象的原因是什么,所以来这里问问各位~,哪里写的不清楚还请大家指明,谢谢~
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.