繁体   English   中英

运行 1 个 spring 引导应用程序时创建了多个 ORACLE 数据库连接

[英]Multiple ORACLE DB connections created while running 1 spring boot app

我试图了解数据库连接和 spring 启动应用程序之间的相关性。 我的 spring 引导应用程序正在连接到一个模式,并且我正在我的系统上运行 4 个这样的 spring 引导应用程序。 每个应用程序都连接到不同的架构。 问题是这 4 个应用程序正在获取 50 个 oracle 数据库连接,但是当我关闭所有应用程序并通过 oracle sql 开发人员打开数据库时,只获得了一个连接。

我没有足够的代表发表评论。

默认情况下 Spring Boot 使用 HikariCP 作为连接池框架。 在 Baeldung 可以找到一些很好的信息,我建议使用它,因为它涵盖了很多 Spring 引导功能并且几乎总是最新的。

https://www.baeldung.com/hikaricp

Spring-boot具体信息:

https://www.baeldung.com/spring-boot-hikari

虽然根本不需要 10 个连接,但您可以“玩”多少最适合您的应用程序(或最优化),并将其设置为最适合您的设计。 通常这将通过在您的应用程序中出现需要时对其进行优化来完成。 10 是 spring/hikari 确定为大多数项目的良好起点。

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#data.sql.datasource.connection-pool

由于我必须将此作为答案发布,因此我将在您的实际问题中更深入地介绍 go:

如果我们想到一个没有池的数据库连接,我们可以想到:

  1. 应用程序请求驱动程序打开到您的数据库的连接
  2. 在您的应用程序和数据库之间打开一个套接字
  3. 您已通过数据库身份验证
  4. 您的查询运行并且连接已关闭

这在没有很多请求的小型应用程序中很好,但希望随着我们扩展并获得更多用户,您可以在这里看到问题。 删除前 3 个步骤可以产生巨大的差异。

还应该注意的是,当您的数据库拥有 3 个连接时,这些连接将处于空闲状态并且不会在您的数据库上产生太多(如果有的话)负载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM