hikaricp mysql_使用 HikariCP 数据源
概述
HikariCP是Spring Framework 5.0的默認 數據庫連接池,這得益于他的高性能。但是如果配置不當,數據庫連接池也可能因影響到系統(tǒng)性能。
重要參數
maximum-pool-size
minimum-idle
pool-name
auto-commit
idle-timeout
max-lifetime
connection-timeout
初始化過程和連接創(chuàng)建邏輯
當HikariCP初始化時候,會將添加連接到池中,直到達到minimum-idle的數量,此時保持這個狀態(tài)。當有新的連接池請求時,HikariCP會返回一個connection的代理。當connection都處于使用狀態(tài)時,若此時有新的連接池請求,HikariCP就會繼續(xù)新建connection直到達到maximun-pool-size。
maximum-pool-size
池中最大連接數(包括空閑和正在使用的連接)。默認值是10,這個一般預估應用的最大連接數,后期根據監(jiān)測得到一個最大值的一個平均值。要知道,最大連接并不是越多越好,一個connection會占用系統(tǒng)的帶寬和存儲。但是 當連接池沒有空閑連接并且已經到達最大值,新來的連接池請求(HikariPool#getConnection)會被阻塞直到connectionTimeout(毫秒),超時后便拋出SQLException。
minimum-idle
池中最小空閑連接數量。默認值10,小于池中最大連接數,一般根據系統(tǒng)大部分情況下的數據庫連接情況取一個平均值。Hikari會盡可能、盡快地將空閑連接數維持在這個數量上。如果為了獲得最佳性能和對峰值需求的響應能力,我們也不妨讓他和最大連接數保持一致,使得HikariCP成為一個固定大小的數據庫連接池。
pool-name
連接池的名字。一般會出現在日志和JMX控制臺中。默認值:auto-genenrated。建議取一個合適的名字,便于監(jiān)控。
auto-commit
是否自動提交池中返回的連接。默認值為true。一般是有必要自動提交上一個連接中的事物的。如果為false,那么就需要應用層手動提交事物。
idle-timeout
空閑時間。僅在minimum-idle小于maximum-poop-size的時候才會起作用。默認值10分鐘。根據應用實際情況做調整,對于一些間歇性流量達到峰值的應用,一般需要考慮設置的比間歇時間更大,防止創(chuàng)建數據庫連接拖慢了應用速度。
max-lifetime
連接池中連接的最大生命周期。當連接一致處于閑置狀態(tài)時,數據庫可能會主動斷開連接。為了防止大量的同一時間處于空閑連接因為數據庫方的閑置超時策略斷開連接(可以理解為連接雪崩),一般將這個值設置的比數據庫的“閑置超時時間”小幾秒,以便這些連接斷開后,HikariCP能迅速的創(chuàng)建新一輪的連接。
connection-timeout
連接超時時間。默認值為30s,可以接收的最小超時時間為250ms。但是連接池請求也可以自定義超時時間(com.zaxxer.hikari.pool.HikariPool#getConnection(long))。
#
# 配置數據源相關 使用 HikariCP 數據源
#
############################################################
# 等待連接池分配連接的最大時長(毫秒),超過這個時長還沒可用的連接則發(fā)生SQLException, 默認:30秒
spring.datasource.hikari.connection-timeout=30000# 最小連接數
spring.datasource.hikari.minimum-idle=5# 最大連接數
spring.datasource.hikari.maximum-pool-size=15# 自動提交
spring.datasource.hikari.auto-commit=true# 一個連接idle狀態(tài)的最大時長(毫秒),超時則被釋放(retired),默認:10分鐘
spring.datasource.hikari.idle-timeout=600000# 連接池名字
spring.datasource.hikari.pool-name=DatebookHikariCP
# 一個連接的生命時長(毫秒),超時而且沒被使用則被釋放(retired),默認:30分鐘 1800000ms,建議設置比數據庫超時時長少60秒,參考MySQL wait_timeout參數(show variables like‘%timeout%‘;) -->spring.datasource.hikari.max-lifetime=28740000spring.datasource.hikari.connection-test-query=SELECT 1
原文鏈接:https://blog.csdn.net/ling_76539446/article/details/102637024
總結
以上是生活随笔為你收集整理的hikaricp mysql_使用 HikariCP 数据源的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java循环遍历类属性_java循环遍历
- 下一篇: linux cmake编译源码,linu