2019獨角獸企業重金招聘Python工程師標準>>>
HikariCP號稱性能最好的Java數據庫連接池。雖沒做過親測但是公司項目一直在用,大概經歷過2萬左右用戶同時在線,鏈接池性能方面未出現問題。
官網:http://brettwooldridge.github.io/HikariCP/
例子已上傳碼云:https://gitee.com/imlichao/HikariCP-example
?
安裝
maven 坐標(這是java8的坐標,對應不同版本的jdk需要使用不同的版本)
<dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId><version>2.7.6</version>
</dependency>
?
配置
增加HikariCP配置文件,設置連接池配置
package pub.lichao.test.config;import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import javax.sql.DataSource;/*** HikariCP連接池配置*/
@Configuration
public class DataSourceConfig {@Value("${spring.datasource.url}")private String dataSourceUrl;@Value("${spring.datasource.username}")private String user;@Value("${spring.datasource.password}")private String password;@Beanpublic DataSource primaryDataSource() {HikariConfig config = new HikariConfig();config.setJdbcUrl(dataSourceUrl); //數據源config.setUsername(user); //用戶名config.setPassword(password); //密碼config.addDataSourceProperty("cachePrepStmts", "true"); //是否自定義配置,為true時下面兩個參數才生效config.addDataSourceProperty("prepStmtCacheSize", "250"); //連接池大小默認25,官方推薦250-500config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048"); //單條語句最大長度默認256,官方推薦2048config.addDataSourceProperty("useServerPrepStmts", "true"); //新版本MySQL支持服務器端準備,開啟能夠得到顯著性能提升config.addDataSourceProperty("useLocalSessionState", "true");config.addDataSourceProperty("useLocalTransactionState", "true");config.addDataSourceProperty("rewriteBatchedStatements", "true");config.addDataSourceProperty("cacheResultSetMetadata", "true");config.addDataSourceProperty("cacheServerConfiguration", "true");config.addDataSourceProperty("elideSetAutoCommits", "true");config.addDataSourceProperty("maintainTimeStats", "false");HikariDataSource ds = new HikariDataSource(config);return ds;}
}
SpringBoot application.properties中配置數據源參數(具體參數含義請參考spring boot相關說明)
# Server HTTP port.
server.port=8090spring.datasource.url=jdbc:mysql://rdso30006c33s57oufvfo.mysql.rds.aliyuncs.com:3306/pltx-test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
spring.datasource.username=*******
spring.datasource.password=*******
spring.datasource.driverClassName=com.mysql.jdbc.Driverspring.datasource.max-idle=10
spring.datasource.max-active=15
spring.datasource.max-lifetime=86430000
spring.datasource.log-abandoned=true
spring.datasource.remove-abandoned=true
spring.datasource.remove-abandoned-timeout=60
spring.datasource.initialize=false
spring.datasource.sqlScriptEncoding=UTF-8
連接數的確定可以參考:https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing
?
啟動項目我們可以看到項目使用了HikariCP連接池
?
?
?