一个应用程序可以从其他应用程序窃取数据库连接吗?

时间:2019-11-03 09:08:40

标签: java spring-boot wildfly hikaricp

我在wildfy上部署了两个Spring Boot应用程序。在每个应用程序中使用hikaricp,最大池大小为20。在高负载下,我看到我的第一个应用程序使用了池中的所有连接(活动计数20),第二个应用程序仅使用4(活动计数4),但是当第二个应用程序尝试使用获得连接它有一个例外:连接不可用,请求在30000ms后超时。第二个应用程序是否可能尝试从第一个应用程序cp获得连接?!

1 个答案:

答案 0 :(得分:1)

我将考虑两种情况并分享我所知道的:

  1. 两个应用程序都位于同一应用程序服务器(Wildfly)上

如果您在应用程序服务器中有一个通用的连接池定义,那么请确保两个应用程序共享该连接池。

注意:尽管在我看来并非如此,因为我不确定您的部署体系结构。因此,让我们看看下一种可能性。

  1. 每个应用程序都位于隔离的连接池(独立的服务器)上

一个应用程序无法访问或受另一应用程序的连接池限制。

但是可能会发生的情况是您用尽了物理数据库连接-应用程序级别的连接池打开了与数据库的物理连接。您的应用程序的两个连接池都在执行此操作。每个数据库系统都有一个配置,该配置可以设置最大(物理)连接限制-客户端一次可以与数据库建立多少物理连接。

例如,在MySQL中,您可以找到和修改max_connections配置参数,如here所示。

有关物理连接和逻辑连接的某些信息可以在here中找到。

相关问题