亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Spring Boot如何使用HikariCP連接池詳解

2024-07-14 08:43:49
字體:
來源:轉載
供稿:網友

前言

Springboot讓Java開發更加美好,更加簡潔,更加簡單。Spring Boot 2.x中使用HikariCP作為默認的數據連接池。 HikariCP使用Javassist字節碼操作庫來實現動態代理,優化并精簡了字節碼,同時內部使用 com.zaxxer.hikari.util.FastList 代替ArrayList、使用了更好的并發集合類 com.zaxxer.hikari.util.ConcurrentBag ,“號稱”是目前最快的數據庫連接池。

下面話不多說了,來一起看看詳細的介紹吧

基本使用

在Spring Boot 2.x中使用HikariCP十分簡單,只需引入依賴 implementation 'org.springframework.boot:spring-boot-starter-jdbc' : 

pluginManagement {	repositories {		gradlePluginPortal()	}}rootProject.name = 'datasource-config'plugins {	id 'org.springframework.boot' version '2.1.3.RELEASE'	id 'java'}apply plugin: 'io.spring.dependency-management'group = 'spring-boot-guides'version = '0.0.1-SNAPSHOT'sourceCompatibility = '1.8'repositories {	mavenCentral()}dependencies {	implementation 'org.springframework.boot:spring-boot-starter-jdbc'	runtimeOnly 'com.h2database:h2'	testImplementation 'org.springframework.boot:spring-boot-starter-test'}

配置文件如下:

spring: datasource: url: jdbc:h2:mem:demodb username: sa password: hikari: # https://github.com/brettwooldridge/HikariCP (uses milliseconds for all time values) maximumPoolSize: 10 minimumIdle: 2 idleTimeout: 600000 connectionTimeout: 30000 maxLifetime: 1800000

關于連接池的具體配置參數詳見 HikariCP 。

示例代碼如下:

package springbootguides.datasourceconfig;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.CommandLineRunner;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import javax.sql.DataSource;import java.sql.Connection;@SpringBootApplicationpublic class DatasourceConfigApplication implements CommandLineRunner {	@Autowired	private DataSource datasource;	@Override	public void run(String... args) throws Exception {		try(Connection conn = datasource.getConnection()) {			System.out.println(conn);		}	}	public static void main(String[] args) {		SpringApplication.run(DatasourceConfigApplication.class, args);	}}

實現原理

Spring Boot使用如下方式整合HikariCP:入口是 org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration ,通過 org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.Hikari 中的 @Bean 方式創建 com.zaxxer.hikari.HikariDataSource : 

/**	 * Hikari DataSource configuration.	 */	@ConditionalOnClass(HikariDataSource.class)	@ConditionalOnMissingBean(DataSource.class)	@ConditionalOnProperty(name = "spring.datasource.type", havingValue = "com.zaxxer.hikari.HikariDataSource", matchIfMissing = true)	static class Hikari {		@Bean		@ConfigurationProperties(prefix = "spring.datasource.hikari")		public HikariDataSource dataSource(DataSourceProperties properties) {			HikariDataSource dataSource = createDataSource(properties,					HikariDataSource.class);			if (StringUtils.hasText(properties.getName())) {				dataSource.setPoolName(properties.getName());			}			return dataSource;		}	}

@ConfigurationProperties(prefix = "spring.datasource.hikari") 會自動把 spring.datasource.hikari.* 相關的連接池配置信息注入到創建的HikariDataSource實例中。

HikariCP的監控和遙測

因為在我們的微服務體系中使用的監控系統是Prometheus,這里以Prometheus為例。

注意spring boot 2.0對spring boot 1.x的metrics進行了重構,不再向后兼容,主要是在spring-boot-acutator中使用了micrometer,支持了更多的監控系統:Atlas、Datadog、Ganglia、Graphite、Influx、JMX、NewRelic、Prometheus、SignalFx、StatsD、Wavefront。Spring boot 2.0的metrics對比spring boot 1.x除了引入micrometer外,更大的體現是支持了tag,這也說明Prometheus、Influx等支持Tag的時序監控數據模型的監控系統已經成為主流。

在前面示例中的build.gradle中加入如下依賴:

implementation 'org.springframework.boot:spring-boot-starter-web'implementation 'org.springframework.boot:spring-boot-starter-actuator'implementation 'io.micrometer:micrometer-registry-prometheus'

配置文件applycation.yaml中加入對actuator的配置:

management: endpoints: web:  exposure:  include: "health,info,prometheus" server: port: 8079 servlet:  context-path: /

注意這里引入了web和actuator依賴,通過配置 management.server.port 指定actuator的web端點為8089端口,通過 management.endpoints.include 對外開放 /actuator/prometheus ,在引入 io.micrometer:micrometer-registry-prometheus 依賴之后,端點 /actuator/prometheus 當即生效。 

curl http://localhost:8079/actuator/prometheus | grep hikari# TYPE hikaricp_connections_acquire_seconds summaryhikaricp_connections_acquire_seconds_count{pool="HikariPool-1",} 3.0hikaricp_connections_acquire_seconds_sum{pool="HikariPool-1",} 0.001230082# HELP hikaricp_connections_acquire_seconds_max Connection acquire time# TYPE hikaricp_connections_acquire_seconds_max gaugehikaricp_connections_acquire_seconds_max{pool="HikariPool-1",} 0.0# HELP hikaricp_connections_min Min connections# TYPE hikaricp_connections_min gaugehikaricp_connections_min{pool="HikariPool-1",} 2.0# TYPE hikaricp_connections_timeout_total counterhikaricp_connections_timeout_total{pool="HikariPool-1",} 0.0# HELP hikaricp_connections_pending Pending threads# TYPE hikaricp_connections_pending gaugehikaricp_connections_pending{pool="HikariPool-1",} 0.0# HELP hikaricp_connections_usage_seconds Connection usage time# TYPE hikaricp_connections_usage_seconds summaryhikaricp_connections_usage_seconds_count{pool="HikariPool-1",} 3.0hikaricp_connections_usage_seconds_sum{pool="HikariPool-1",} 0.06# HELP hikaricp_connections_usage_seconds_max Connection usage time# TYPE hikaricp_connections_usage_seconds_max gaugehikaricp_connections_usage_seconds_max{pool="HikariPool-1",} 0.0# HELP hikaricp_connections_max Max connections# TYPE hikaricp_connections_max gaugehikaricp_connections_max{pool="HikariPool-1",} 10.0# HELP hikaricp_connections Total connections# TYPE hikaricp_connections gaugehikaricp_connections{pool="HikariPool-1",} 2.0# HELP hikaricp_connections_creation_seconds_max Connection creation time# TYPE hikaricp_connections_creation_seconds_max gaugehikaricp_connections_creation_seconds_max{pool="HikariPool-1",} 0.0# HELP hikaricp_connections_creation_seconds Connection creation time# TYPE hikaricp_connections_creation_seconds summaryhikaricp_connections_creation_seconds_count{pool="HikariPool-1",} 1.0hikaricp_connections_creation_seconds_sum{pool="HikariPool-1",} 0.001# HELP hikaricp_connections_idle Idle connections# TYPE hikaricp_connections_idle gaugehikaricp_connections_idle{pool="HikariPool-1",} 2.0# HELP hikaricp_connections_active Active connections# TYPE hikaricp_connections_active gaugehikaricp_connections_active{pool="HikariPool-1",} 0.0

參考

• HikariCP

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美乱妇40p| 夜夜躁日日躁狠狠久久88av| 国产精品亚洲激情| 黑人精品xxx一区| 久久久久久成人精品| 中文字幕成人精品久久不卡| 国产精品91视频| 日产日韩在线亚洲欧美| 国产日韩欧美中文在线播放| 欧美激情一区二区三区在线视频观看| 亚洲精品电影久久久| 国产一区二区日韩| 亚洲人成网站777色婷婷| 欧美精品免费在线观看| 91人成网站www| 欧美电影院免费观看| 欧美精品激情在线| 国产香蕉一区二区三区在线视频| 国产在线观看精品一区二区三区| 亚洲毛片一区二区| 在线观看欧美视频| 日韩性生活视频| 国产精品色午夜在线观看| 日韩欧美精品网址| 91久久国产精品| 国产97色在线|日韩| 国产精品99久久久久久白浆小说| 国语自产精品视频在免费| 亚洲美女自拍视频| 免费不卡欧美自拍视频| 欧美一区三区三区高中清蜜桃| 国内精品中文字幕| 欧美国产视频日韩| 国产欧美精品在线| 精品人伦一区二区三区蜜桃免费| 91免费在线视频网站| 琪琪第一精品导航| 久久伊人精品天天| 按摩亚洲人久久| 在线观看国产成人av片| 久久精品视频导航| 久久久久久久久久国产精品| 国产精品视频精品视频| 色偷偷av一区二区三区| 欧美成人免费全部观看天天性色| 久久精品99久久久香蕉| 亚洲第一av网| 久久91亚洲人成电影网站| 国产欧美一区二区三区久久人妖| 蜜臀久久99精品久久久久久宅男| 最近2019年中文视频免费在线观看| 久久精品视频亚洲| 亚洲美女av电影| 亚洲人成在线免费观看| 欧洲成人午夜免费大片| 国产精品高潮在线| 韩国精品美女www爽爽爽视频| 欧洲永久精品大片ww免费漫画| 日韩在线视频观看| 亚洲欧洲av一区二区| 亚洲自拍在线观看| 日韩av毛片网| 综合网日日天干夜夜久久| 久久人人97超碰精品888| 欧美激情精品久久久久久久变态| 91在线免费网站| 成人有码视频在线播放| 久久久久女教师免费一区| 国内精品视频一区| 亚洲大胆人体av| 亚洲精品有码在线| 国产午夜精品免费一区二区三区| 欧美尤物巨大精品爽| 精品国产老师黑色丝袜高跟鞋| 国产免费一区视频观看免费| 日本高清视频精品| 国产精品99蜜臀久久不卡二区| 在线看日韩欧美| 日韩精品视频在线免费观看| 成人综合国产精品| 国产综合久久久久| 欧美最猛黑人xxxx黑人猛叫黄| 国产精品一区专区欧美日韩| 欧美在线视频播放| 一区二区三区国产在线观看| 6080yy精品一区二区三区| 欧美精品在线极品| 亚洲国产91精品在线观看| 亚洲精美色品网站| 欧日韩不卡在线视频| 亚洲国产天堂久久综合网| 亚洲另类xxxx| 欧美裸身视频免费观看| 性夜试看影院91社区| 欧美最顶级的aⅴ艳星| 中文字幕自拍vr一区二区三区| 中文字幕亚洲精品| 欧亚精品在线观看| 欧美成人三级视频网站| 福利微拍一区二区| 久久黄色av网站| 久久国产精品网站| 日韩二区三区在线| 国产精自产拍久久久久久蜜| 亚洲精品成人久久| 国产第一区电影| 亚洲国产精品久久久久秋霞不卡| 久久久久久噜噜噜久久久精品| 国产欧美日韩中文字幕| 91色视频在线观看| 国产日韩欧美在线观看| 91av福利视频| 精品久久久久久亚洲国产300| 欧美一二三视频| 狠狠色噜噜狠狠狠狠97| 亚洲天堂第一页| 亚洲色在线视频| 日韩h在线观看| 岛国av一区二区在线在线观看| 亚洲精品国产成人| 亚洲成人激情在线| 精品人伦一区二区三区蜜桃网站| 久久精品久久久久久国产 免费| 揄拍成人国产精品视频| 国外成人性视频| 1769国内精品视频在线播放| 插插插亚洲综合网| 懂色aⅴ精品一区二区三区蜜月| 久色乳综合思思在线视频| 91亚洲人电影| 日韩欧美成人免费视频| 日本高清视频一区| 日韩电影免费在线观看| 日本sm极度另类视频| 亚洲视频在线播放| 国产九九精品视频| 日韩中文字幕久久| 日韩精品视频三区| 国产精品久久久久久av福利软件| 日韩激情视频在线| 亚洲成人久久电影| 91久久国产精品| 国产精品久久色| 国产亚洲精品久久久久动| 日韩高清人体午夜| 亚洲精品国产综合区久久久久久久| 国产99在线|中文| 一区二区三区视频免费在线观看| 5278欧美一区二区三区| 97在线视频免费看| 疯狂做受xxxx欧美肥白少妇| 高清欧美性猛交xxxx黑人猛交| 国产欧美一区二区三区在线| 成人激情春色网| 97人人爽人人喊人人模波多| 成人亚洲激情网| 亚洲午夜激情免费视频| 亚洲综合av影视| 亚洲欧洲免费视频| 91性高湖久久久久久久久_久久99| 欧美有码在线观看| 欧美中文字幕在线观看| 欧美精品免费在线观看| 国产99久久久欧美黑人|