本章只是回顾一次eureka版本升级后tomcat资源占用过高的问题,临时解决。
升级springBoot、SpringCloud版本
- 升级完成后直接在测试环境测试部署,结果发现eureka的cpu资源占用过高,导致假死。通过arthas发现是tomcat线程阻塞。通过dependepency看了下springboot中内嵌tomcat的版本是9了。之前是8,测试环境一大堆人等着测试接口。首先想着降低tomcat版本。
1 | 查看依赖 |
排除SpringBoot的Tomcat,指定Tomcat版本
有时候我们需要在特定情况下使用特定的Tomcat版本,这时候总不能因为Tomcat就改变SpringBoot的版本,所以可以采用排除SpringBoot中的Tomcat包,然后手动指定Tomcat的版本,当然还要引入Tomcat相关的包。
Gradle的配置
1 | compile('org.springframework.boot:spring-boot-starter-web') { |
如果不指定版本,则会使用最新的Tomcat版本, 否则直接指定对应的版本号。
Maven的配置
- 在 pom.xml文件里面添加一个标签
,添加期望的版本。
1 | <tomcat.version>8.5.37</tomcat.version> |
- 添加必要的Jar包:
1 | <dependency> |
重新部署eureka后一切正常。处理时间短暂,没有影响大家工作。时间过了大半年了,也忘记具体是啥原因了。有机会本地复现试试。