SpringBoot Druid 설정 프로 세 스 도해

Druid 는 아 리 소스 의 JDBC 응용 구성 요소 로 세 부분 을 포함 합 니 다.
  • DruidDriver:대리 Driver 는 Filter-Chain 모드 를 기반 으로 하 는 플러그 인 체 계 를 제공 할 수 있 습 니 다
  • DruidDataSource:효율 적 이 고 관리 가능 한 데이터베이스 연결 탱크.
  • SQLParser:실 용적 인 SQL 문법 분석Druid 연결 탱크 중간 부품 을 통 해 우 리 는 다음 을 실현 할 수 있 습 니 다.
  • 데이터베이스 접근 성능 을 모니터링 할 수 있 고 Druid 내장 은 강력 한 기능 을 가 진 StatFilter 플러그 인 을 제공 하여 SQL 의 실행 성능 을 상세 하 게 통계 할 수 있 으 며 이것 은 온라인 으로 데이터베이스 접근 성능 을 분석 하 는 데 도움 이 된다
  • 기 존의 DBCP 와 C3P 0 연결 풀 중간 부품 을 교체 합 니 다.Druid 는 효율 적 이 고 기능 이 강 하 며 확장 성 이 좋 은 데이터베이스 연결 탱크 를 제공 합 니 다데이터베이스 암호 화데이터베이스 비밀 번 호 를 설정 파일 에 직접 쓰 면 보안 문제 가 발생 하기 쉽다.DruidDruiver 와 DruidDataSource 는 모두 PasswordCallback 을 지원 합 니 다.
  • SQL 실행 로그,Druid 는 서로 다른 LogFilter 를 제공 합 니 다.Common-Logging,Log4j 와 JdkLog 를 지원 할 수 있 습 니 다.필요 에 따라 해당 하 는 LogFilter 를 선택 하여 응용 데이터 베 이 스 를 방문 하 는 상황 을 모니터링 할 수 있 습 니 다
  • JDBC 를 확장 합 니 다.JDBC 계층 에 프로 그래 밍 이 필요 하 다 면 Druid 가 제공 하 는 Filter-Chain 메커니즘 을 통 해 JDBC 계층 의 확장 플러그 인 을 쉽게 작성 할 수 있 습 니 다
  • 설정 코드 는 다음 과 같 습 니 다.
    
    spring:
     datasource:
      type: com.alibaba.druid.pool.DruidDataSource
      driverClassName: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://${url}:${port}/${    }?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&allowMultiQueries=true&useAffectedRows=true
      username: ${username}
      password: ${password}
     druid:
       initial-size: 10 #              。          init  ,     getConnection 
       min-idle: 10 #        
       maxActive: 200 #        
       maxWait: 60000 #            ,    。   maxWait  ,       ,         ,          
       timeBetweenEvictionRunsMillis: 60000 #              .Destroy            ,            minEvictableIdleTimeMillis       。
       minEvictableIdleTimeMillis: 300000 #          .                
       validationQuery: SELECT 1 FROM DUAL #            sql.           sql         ,    oracle      SELECT 1 FROM DUAL
       testWhileIdle: true #            ,               .     true,     ,       。         ,        timeBetweenEvictionRun
       testOnBorrow: false #                .       validationQuery        ,           。
       testOnReturn: false #              .       validationQuery        ,           。
       poolPreparedStatements: true #   PSCache
       maxPoolPreparedStatementPerConnectionSize: 20 #  PSCache 
       connectionErrorRetryAttempts: 3 #             
       breakAfterAcquireFailure: true #              
       timeBetweenConnectErrorMillis: 300000 #            
       asyncInit: true #        
       remove-abandoned: true #           
       remove-abandoned-timeout: 1800 #     (      )
       transaction-query-timeout: 6000 #       
       filters: stat,wall,log4j2
       connectionProperties: 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:
        url-pattern: "/druid/*"
        allow:
        deny:
        reset-enable: false
        login-username: admin
        login-password: admin
    druid 모니터링 데이터 의 외부 화 호출
    
    @RestController
    public class DruidStatController {
      @GetMapping("/stat")
      public Object druidStat() {
        // DruidStatManagerFacade#getDataSourceStatDataList                  
        return DruidStatManagerFacade.getInstance().getDataSourceStatDataList();
      }
    }
    도 례

    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기