我们的应用程序基于Spring Boot 2(spring-data,JPA,Hibernate,Postgres,tomcat)构建。应用程序的性能非常差,因为及时的请求很多(例如1秒内有2000个请求)。我们知道我们将来需要重写它。但是我的问题是,是否有一些解决方案可以提高性能并执行很多请求,而无需对代码进行大的更改?谢谢您的任何建议。
答案 0 :(得分:1)
这是一个广泛的问题,但需要考虑一些技巧:
1):乐观锁定。因此,您无需物理锁定表/行,因此您的并发请求不会排队或堆积。您仍然会得到OptimisticLockExceptions
并需要处理它们,但另一方面也会获得一些性能上的好处。
2)尽量避免在事务中使用冗长的方法,这些方法可能会将某些数据锁定为更多的所需数据。您可能需要考虑使用@Transactionl
设置PROPAGATION=REQUIRES_NEW
方法,并且通常使它们变短。
3)尝试测试查询的超时,以使它们在被阻塞等时不会挂得太久。
答案 1 :(得分:1)
如果您想更改代码,我建议使用MyBatis之类的直接SQL代替休眠模式。但是,如果没有代码更改,我只能建议您先找到瓶颈。