連線池洩露問題解決

2021-10-06 09:25:57 字數 867 閱讀 3000

我們這邊的專案的連線池使用的hikari,連線連的是sparkthriftserver。但隨著專案越來越大,發現用一陣子,連線就擴大到160甚至更多。

1、排查連線情況

我們使用

netstat -nat | grep -i 10001 | wc -l

來檢視連線此埠的tcp連線情況。

2、hikari侷限以及選用druid

我們在調查連線洩露的問題時候出現了麻煩。專案過大,每個人都說自己的連線都關閉了,排查**顯得很艱難。hikari雖然號稱最快,也最輕量,但是對於連線洩露這塊顯得沒有辦法。

druid連線池在這時候是更好的選擇了。在 文章中,講了關於druid 對於檢測洩露提供的方法。

//監控洩露的配置

datasource.setremoveabandoned(true);

datasource.setremoveabandonedtimeout(600);

datasource.setlogabandoned(true);

這些配置可以將洩露的連線強制關閉,並將洩露連線的堆疊資訊都列印出來。這樣就會方法到底是哪個方法呼叫而沒有關閉連線。

3、日誌記錄

在日誌記錄這裡我們可以使用logback針對druiddatasource這個類來專門進行記錄,並且只要error級別的記錄並將它寫到檔案裡面,具體如下所示(只貼上相關部分配置)

$/datascience.poolerror.log.%d.log

30%d [%thread] %-5level %logger - %msg%n

10mb

連線池問題

connection耗盡不一定就是由connection leak引起,如果你的執行佇列中線程數設定的比connection pool大,而且你的某些程式占用connection時間過長,致使執行佇列中的執行緒已經把connection pool中的所有的connection都申請出來了,此時如果再...

連線池的問題

看到關於連線池的問題,覺得很有用,摘錄到自己部落格上 net連線池救生員 防止可淹沒應用程式的池溢位 william vaughn 大多數 ado.net 資料提供程式使用連線池,以提高圍繞 microsoft 斷開連線的 net 結構構建的應用程式的效能。應用程式首先開啟乙個連線 或從連線池獲得乙...

手機連線藍芽問題解決

前段時間手機用pc套件連線電腦老是報 無法驗證手機 直接右鍵傳送檔案時候老是說 使用了與請求的協議不相容的位址 錯誤,搞了好幾天都沒解決掉 後來經過網上搜尋資料,自己多次嘗試,終於把問題解決了!先把藍芽驅動解除安裝掉 在裝置管理器裡,我用的是xp自帶的驅動 然後修復登錄檔 cmd命令列下執行nets...