1. Druid是什么?
Druid是阿里开源的连接池,是Java语言中最好的数据库连接池.Druid能够提供强大的监控和扩展功能,是为监控而生的数据库连接池!源代码仓库地址是 https://github.com/alibaba/druid
2. 什么是数据库连接池?
连接池的思想就是建立一个”缓存池”,预先存放一定数量的连接,当需要建立数据库连接时,就从”缓存池”中取出一个,用完之后再放入池中。
连接池是怎么管理、分配连接对象呢?
使用一个”空闲池”管理已经被创建但未被使用的连接,当有一个新的连接请求时,首先再”空闲池”中寻找空闲的连接对象,如果池中有空闲连接对象,就把空闲时间最长的那个连接对象取出来分配(前提是这个对象是有效的),如果这个对象不可用,就将其从”空闲池”中删除,重新检测。如果没有检测到可用连接,则判断当前连接数是否达到最大连接数,如果没有,则创建新的连接,如果达到最大连接数,则进入等待。如果在等待的时间内,检测到可用的连接,则进行分配,如果超时还未检测到可用连接,则返回null。系统只对所创建的连接进行计数统计,对于检测可用连接,可开辟线程(提示响应速度,增加系统开销)、也可在分配前进行检测。
3. 使用
3.1 添加依赖
修改pom.xml
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>${druid.version}</version> </dependency>
|
3.2 修改配置
修改application.yml
server: port: 8080 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://127.0.0.1:3306/micro_serve?characterEncoding=UTF-8&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai username: root password: liuqh112233 driver-class-name: com.mysql.cj.jdbc.Driver druid: initial-size: 10 min-idle: 10 max-active: 200 max-wait: 60000 time-between-eviction-runs-millis: 60000 min-evictable-idle-time-millis: 300000 validation-query: select 1 test-while-idle: true test-on-borrow: false test-on-return: false pool-prepared-statements: false connection-error-retry-attempts: 3 break-after-acquire-failure: true filters: stat,wall,slf4j connection-properties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000 web-stat-filter: enabled: true url-pattern: "/*" exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*" stat-view-servlet: enabled: true url-pattern: "/druid/*" allow: 127.0.0.1,172.30.5.96 deny: reset-enable: false login-username: admin login-password: 123456
mybatis: type-aliases-package: com.hui.javalearn.model mapper-locations: classpath*:mapper/*.xml
|
3.3 访问监控页面
访问: http://127.0.0.1:8080/druid
1. 登录页
2. Sql监控
3. URI监控