关于spring MVC重复调用的性能问题
中间件:V10
OA厂商:蓝凌
项目:深圳市发改委
问题描述:
在200左右并发下会导致接口缓慢,无法访问接口,经过链路追踪可以看出,如下图:
看红框(第一个括号后面的数字是调用数字):可以明显地看出是重复调用,入口虽然是spring MVC的类 但是调用的底层是我们中间件的servlet-api-2.5.jar的类,所以开始以为是可能是这个jar包有问题
后面查看发现tomcat的包对应的servlet-api.jar对应的是tomcat-embed-core 9.0.38.jar这个包,于是问研发这两个包有没有很大区别,研发回复是类似,于是就把tomcat-embed-core 9.0.38.jar改名为servlet-api-2.5.jar进行替换,如下是替换后的表现情况:
链路追踪可以明显看出是spring MVC的问题,并且并没有进入到servlet-api.jar这个包里的方法里,后续就是OA厂商对于spring mvc的类进行封装优化,附件KmssRequestMappingHandlerMapping(1).java为优化后源码,绿色字体的注释