Alibaba-Druid 连接池使用

Spring Boot 2.0默认连接池为HikariCP,一款号称高性能的连接池。如没特殊要求使用默认连接池就可以,那么我们为什么要使用Druid呢。

  1. Druid也是高性能的, 业界有很多实践
  2. Druid提供很多强大的功能,比如监控,黑白名单,密码加密等

HikariCP 基于spring boot 的metric功能,结合prometheus + grafana也可以实现监控

下面记录下工作中用到的监控和密码加密功能:

使用版本:

        
            com.alibaba
            druid-spring-boot-starter
            1.1.22
        
  1. 密码加密

第一步使用druid jar包提供的加密功能进行密码加密
#进入到druid jar包目录,执行如下命令: root为要加密的密码
java -cp druid-1.0.29.jar com.alibaba.druid.filter.config.ConfigTools root
#执行结果
privateKey:MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEApi859CGNz0R5LBUkiRSepo5c4YBZZS/PNGPCUSIA0pd9Tjb7IHMdJavhpRscdFdYdS5RhwtkCuVjooUj0UaCewIDAQABAkArcds3vHHjRqZa5OgZQh+7sSoM9c3pCxejPZU2Oqp2YyDo63nIooTU8/Pc+uxhbBpDelDugP8mH0tgPGVGtkwRAiEA8mpCLpzsGiFZsaeHVplwujGT0MhvQdcfXAQya6bXqSkCIQCvf1i0fEp9caeCM7cLnR+r0pqhmsPqCKUAK2DYyEkvAwIhAOIP7YACnrsPdtGRZUiA9vrr2OjOwdIohvoMf+icQmlhAiBC+mMsXtM/FQVNF9egQxM3TGVfj+V9iFcQvX10vtvPaQIgQIWoMuOp0pnX9bozIq7ERoXg3PNVYkJpIoKNY9RPjag=
publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKYvOfQhjc9EeSwVJIkUnqaOXOGAWWUvzzRjwlEiANKXfU42+yBzHSWr4aUbHHRXWHUuUYcLZArlY6KFI9FGgnsCAwEAAQ==
password:ZWIqZ8YP+e6LKDIR2pkrH3ucyAsLk00s4r3AcnJOeEGB4agUMZkegUK7w4Y76PBNYQxXx0nEGe7PMn75Q5Q/qQ== 
第二步进行yaml文件配置
 datasource:
   url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false
    username: root
  #  第一步生成的密码
    password: ZWIqZ8YP+e6LKDIR2pkrH3ucyAsLk00s4r3AcnJOeEGB4agUMZkegUK7w4Y76PBNYQxXx0nEGe7PMn75Q5Q/qQ==
    # 第一步生成的publicKey
    public-key: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKYvOfQhjc9EeSwVJIkUnqaOXOGAWWUvzzRjwlEiANKXfU42+yBzHSWr4aUbHHRXWHUuUYcLZArlY6KFI9FGgnsCAwEAAQ==
    driver-class-name: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
     # 开启config的filter
      filters: config
     #  设置启用秘密,以及密钥key
      connection-properties:config.decrypt=true;config.decrypt.key=${spring.datasource.public-key}
第三步启动项目测试是否成功
  1. 开启监控日志

配置文件:

 datasource:
    driver-class-name: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
     # 扩展插件:stat监控统计,wall防SQL注入等
      filters: stat,wall
      web-stat-filter:
       # 是否启用统计监控,可进行添加配置进行详细控制
        enabled: true
      stat-view-servlet:
       # 开启监控页面
        enabled: true
       # 页面登录账号密码
        login-username: test
        login-password: test
        # 运行访问的白名单,不设置任何可访问,必须配置。如不配置只可单机访问 
        allow:
       # 黑名单
        deny:
      connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
      use-global-data-source-stat: true

启动项目后访问:http://localhost:8080/druid/login.html

image.png

输入配置文件设置的账号密码,即可进入查看各种监控数据

image.png

你可能感兴趣的:(Alibaba-Druid 连接池使用)