我們這邊的專案的連線池使用的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...