美文网首页
Alibaba-Druid 连接池使用

Alibaba-Druid 连接池使用

作者: 乱世小民 | 来源:发表于2020-06-10 11:21 被阅读0次

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

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

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

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

    使用版本:

            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>1.1.22</version>
            </dependency>
    
    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 连接池使用

          本文链接:https://www.haomeiwen.com/subject/srrjdxtx.html