Spring Boot 高并发:如何提高接口 TPS
Spring Boot 提高接口 TPS一、@Async二、embedded tomcat 性能調优一、@Async启动类开启 @EnableAsync ,服务类添加 @Async 方法,化同步为异步,可一定程度提高并发。二、embedded tomcat 性能調优增加 Spring Boot 内置 tomcat 的线程数和连接数,可以大幅度提升并发性能。但如果该接口会调用其他系统的接口,则该接口
·
Spring Boot 提高接口 TPS
前置知识: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)次数
更多推荐
已为社区贡献2条内容
所有评论(0)