springboot项目接入druid

          项目这几天让整理线上的慢sql,看了下我们还没有集成druid。主要是监控比如慢sql这些的。

           按照官网的说法,引入最新的pom依赖:

           

 <!--添加druid监控-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.11</version>
        </dependency>

 

   然后添加配置类:

    

package com.gwm.marketing.config;

import com.alibaba.druid.filter.Filter;
import com.alibaba.druid.filter.stat.StatFilter;
import com.alibaba.druid.pool.DruidDataSource;
import com.google.common.collect.Lists;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author fanht
 * @descrpiton druid配置类
 * @date 2022/8/29 15:27:14
 * @versio 1.0
 */
@Configuration
public class DruidMysqlConfig {

    @Value("${spring.druid.slowSqlMillis}")
    private Long slowSqlMillis;


    /**
     * 会扫描application.properties文件的以spring.druid开头的数据注入
     * @return
     */
    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean(initMethod = "init",destroyMethod = "close")
    public DruidDataSource dataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setProxyFilters(Lists.newArrayList(statGwmFilter()));
        return dataSource;
    }

    /**
     * alibaba监听器 打印慢sql
     * @return
     */
    @Bean
    public Filter statGwmFilter(){
        StatFilter filter = new StatFilter();
        filter.setSlowSqlMillis(slowSqlMillis);
        filter.setLogSlowSql(true);
        filter.setMergeSql(true);
        return filter;
    }
}

 

再配置下naocs的配置:

   

spring:
  druid: 
   slowSqlMillis: 2000
  datasource:
    url: jdbc:mysql://ip:port/xx?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&allowMultiQueries=true
    username: xx
    password: xx
    driver-class-name: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      web-stat-filter: 
       enabled: true
       url-pattern: /druid/*
      initialSize: 5
      minIdle: 5
      maxActive: 20
      maxWait: 2000
      validationQuery: select 1
      testOnBorrow: false
      testOnReturn: false
      testWhileIdle: true
      filters: stat, wall
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
        reset-enable: true
        login-username: xx
        login-password: xx

遇到的问题:

     首先是接入后,访问本地 http://localhost:8183/druid 一直报404. 然后去官网issue表里面搜了下有不少遇到类似的问题。主要原因有几个

    1.版本号问题 

     2.低版本的springboot不兼容

     3.配置未开启启动监听

   我的是第三个,nacos里面的配置问题。 里面读取配置时候我写成了 spring.druid 。造成配置文件未读取到。成功后启动如下图:

 

 

2.部署到服务器发现,无法登录问题

  目前已知道的是好多人碰到这个问题,issue里面也是各种解决办法。看是那种吧 https://github.com/alibaba/druid/issues/3906

   

 

posted @ 2022-08-29 18:39  Doyourself!  阅读(233)  评论(0编辑  收藏  举报