国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring Boot如何使用HikariCP連接池詳解

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

2021-07-20 16:35青蛙小白 Java教程

這篇文章主要給大家介紹了關于Spring Boot如何使用HikariCP連接池的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用springboot具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

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'

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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'
}

配置文件如下:

?
1
2
3
4
5
6
7
8
9
10
11
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

示例代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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;
 
@springbootapplication
public 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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
     * 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中加入如下依賴:

?
1
2
3
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的配置:

?
1
2
3
4
5
6
7
8
9
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 當即生效。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
curl http://localhost:8079/actuator/prometheus | grep hikari
# type hikaricp_connections_acquire_seconds summary
hikaricp_connections_acquire_seconds_count{pool="hikaripool-1",} 3.0
hikaricp_connections_acquire_seconds_sum{pool="hikaripool-1",} 0.001230082
# help hikaricp_connections_acquire_seconds_max connection acquire time
# type hikaricp_connections_acquire_seconds_max gauge
hikaricp_connections_acquire_seconds_max{pool="hikaripool-1",} 0.0
# help hikaricp_connections_min min connections
# type hikaricp_connections_min gauge
hikaricp_connections_min{pool="hikaripool-1",} 2.0
# type hikaricp_connections_timeout_total counter
hikaricp_connections_timeout_total{pool="hikaripool-1",} 0.0
# help hikaricp_connections_pending pending threads
# type hikaricp_connections_pending gauge
hikaricp_connections_pending{pool="hikaripool-1",} 0.0
# help hikaricp_connections_usage_seconds connection usage time
# type hikaricp_connections_usage_seconds summary
hikaricp_connections_usage_seconds_count{pool="hikaripool-1",} 3.0
hikaricp_connections_usage_seconds_sum{pool="hikaripool-1",} 0.06
# help hikaricp_connections_usage_seconds_max connection usage time
# type hikaricp_connections_usage_seconds_max gauge
hikaricp_connections_usage_seconds_max{pool="hikaripool-1",} 0.0
# help hikaricp_connections_max max connections
# type hikaricp_connections_max gauge
hikaricp_connections_max{pool="hikaripool-1",} 10.0
# help hikaricp_connections total connections
# type hikaricp_connections gauge
hikaricp_connections{pool="hikaripool-1",} 2.0
# help hikaricp_connections_creation_seconds_max connection creation time
# type hikaricp_connections_creation_seconds_max gauge
hikaricp_connections_creation_seconds_max{pool="hikaripool-1",} 0.0
# help hikaricp_connections_creation_seconds connection creation time
# type hikaricp_connections_creation_seconds summary
hikaricp_connections_creation_seconds_count{pool="hikaripool-1",} 1.0
hikaricp_connections_creation_seconds_sum{pool="hikaripool-1",} 0.001
# help hikaricp_connections_idle idle connections
# type hikaricp_connections_idle gauge
hikaricp_connections_idle{pool="hikaripool-1",} 2.0
# help hikaricp_connections_active active connections
# type hikaricp_connections_active gauge
hikaricp_connections_active{pool="hikaripool-1",} 0.0

參考

hikaricp

總結

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

原文鏈接:http://blog.frognew.com/2019/02/spring-boot-guides-hikari.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美在线视频网站 | 一区二区三区四区免费看 | 黄网在线免费观看 | 中文精品久久 | 人人干干人人 | 肌肉男gay网站 | 精品欧美 | 国产一区二区精品在线 | 玖玖在线播放 | 激情久久av一区av二区av三区 | 精品无码久久久久国产 | 天天操天天干天天爽 | 蜜桃av一区 | 能看的av网站 | 欧美日韩成人 | 一二三区字幕免费观看av | 在线观看一区二区三区四区 | 精品视频二区三区 | 免费看黄在线观看 | 日韩在线视频一区 | 亚洲激情在线 | 亚洲www啪成人一区二区 | 亚洲精品久久久久久久久久久 | 毛片久久久久久 | 亚洲 欧美 综合 | 欧美日韩久久久久 | 宅男lu666噜噜噜在线观看 | 日韩免费在线观看视频 | 欧美日韩精品在线 | 日韩在线免费 | 精品国产乱码久久久久久久软件 | 日韩在线 | 国产高清一区二区三区 | 国产精品一区一区三区 | 视频一区二区国产 | 美日韩成人 | 一区二区在线 | 免费一区在线观看 | 成年人免费看 | 久久视频在线看 | 91视频免费播放 |