簡體   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