【发布时间】:2020-11-15 14:05:15
【问题描述】:
我正在尝试对我的简单 crud spring boot 应用程序进行压力测试,但我遇到了 Hikari 超时错误。我试图增加最大池大小,但我仍然遇到同样的问题。如果池大小大于或等于并发请求,则没有例外,但它太慢了。你有什么想法吗?
app_1 | 2020-11-14 17:20:01.723 DEBUG 1 --- [nio-80-exec-150] o.s.orm.jpa.JpaTransactionManager : Participating transaction failed - marking existing transaction as rollback-only
app_1 | 2020-11-14 17:20:01.723 DEBUG 1 --- [nio-80-exec-150] o.s.orm.jpa.JpaTransactionManager : Setting JPA transaction on EntityManager [SessionImpl(988067110<open>)] rollback-only
app_1 | 2020-11-14 17:20:01.724 DEBUG 1 --- [nio-80-exec-150] o.a.c.loader.WebappClassLoaderBase : findClass(jdk.internal.reflect.GeneratedMethodAccessor80)
app_1 | 2020-11-14 17:20:01.725 DEBUG 1 --- [nio-80-exec-150] o.a.c.loader.WebappClassLoaderBase : --> Returning ClassNotFoundException
app_1 | 2020-11-14 17:20:01.715 DEBUG 1 --- [nio-80-exec-102] o.a.c.loader.WebappClassLoaderBase : findClass(jdk.internal.reflect.GeneratedMethodAccessor76)
app_1 | 2020-11-14 17:20:01.727 DEBUG 1 --- [nio-80-exec-102] o.a.c.loader.WebappClassLoaderBase : --> Returning ClassNotFoundException
app_1 | 2020-11-14 17:20:01.727 DEBUG 1 --- [nio-80-exec-153] o.a.c.loader.WebappClassLoaderBase : findClass(jdk.internal.reflect.GeneratedMethodAccessor75)
app_1 | 2020-11-14 17:20:01.728 DEBUG 1 --- [nio-80-exec-153] o.a.c.loader.WebappClassLoaderBase : --> Returning ClassNotFoundException
app_1 | 2020-11-14 17:20:01.728 DEBUG 1 --- [nio-80-exec-102] o.a.c.loader.WebappClassLoaderBase : findClass(jdk.internal.reflect.GeneratedMethodAccessor82)
app_1 | 2020-11-14 17:20:01.729 DEBUG 1 --- [nio-80-exec-102] o.a.c.loader.WebappClassLoaderBase : --> Returning ClassNotFoundException
app_1 | 2020-11-14 17:20:01.729 DEBUG 1 --- [nio-80-exec-153] o.h.engine.jdbc.spi.SqlExceptionHelper : unable to obtain isolated JDBC connection [n/a]
app_1 |
app_1 | java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30004ms.
编辑:
https://github.com/wlp2s0/basic-java-web-services
这是我的简单 CRUD 的 repo。查询非常简单,数据库为空,所以这个错误看起来很奇怪。
【问题讨论】:
-
听起来您的代码/查询太慢了。 Hikari 写了一篇关于pool sizing 的文章。
-
嗨,我阅读了有关 Hikari 池大小的信息并相应地调整了池大小(我也尝试增加池大小,但响应时间太慢)遗憾的是问题仍然存在并且查询/代码非常如果你看到代码很简单。它们只是一个简单表上的 4 个 CRUD 操作,没有数据处理,也没有关系。
标签: java mysql spring spring-boot benchmarking