前置知识:JMeter 压测,得到性能基准数据。

一、@Async

启动类开启 @EnableAsync ,服务类添加 @Async 方法,化同步为异步,可一定程度提高并发。1
前提是业务可以异步,无需立即得到结构,C-call->S, S-resp->C [OK]。
如果业务本身是同步的,则无法通过此方法提升性能。

二、embedded tomcat 性能調优

增加 Spring Boot 内置 tomcat 的线程数和连接数,可以大幅度提升并发性能。但如果该接口会调用其他系统的接口,则该接口的 TPS 会受制于对方接口的 TPS。

server.tomcat.accept-count=1000
server.tomcat.max-connection-10000
server.tomcat.max-threads=800
server.tomcat.min-spare-threads=100

三、链路排查

根据日志,查看耗时的具体项目。

四、代码优化

log 打印 秒改为毫秒,精确定位
减少循环,降低复杂度
减少序列化、反序列化操作
parallelSteam 代替fori循环
setter/getter 代替beanCopy ,减少反射的使用
使用BeanCopier
使用线程池处理业务

降低RAM占用

jstat -gc 查看jvm GC情况
减少 STW(stop the world)次数


  1. Spring Guides: Creating Asynchronous Methods ↩︎

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐