您现在的位置是:主页 > news > 做网站必须要推广吗/企业宣传方式
做网站必须要推广吗/企业宣传方式
admin2025/5/29 9:44:15【news】
简介做网站必须要推广吗,企业宣传方式,哈尔滨最新疫情公布,wordpress调用网站最新文章写在前面:在准备这篇Druid数据库检测之前,只知道我用的是阿里的Druid数据库连接池,主要是用来检测sql性能统计方便优化sql语句的。当我百度Druid时突然蹦出了“Druid是一个高效的数据查询系统,主要解决的是对于大量的基于时序的数…
写在前面:
在准备这篇Druid数据库检测之前,只知道我用的是阿里的Druid数据库连接池,主要是用来检测sql性能统计方便优化sql语句的。当我百度Druid时突然蹦出了“Druid是一个高效的数据查询系统,主要解决的是对于大量的基于时序的数据进行聚合查询。数据可以实时摄入,进入到Druid后立即可查,同时数据是几乎是不可变。通常是基于时序的事实事件,事实发生后进入Druid,外部系统就可以对该事实进行查询……”怀疑自己之前到底用的是不是真正的Druid。和我类似的还不止我一个人……
Hahaha..后来仔细看了看。发现原来有阿里的Druid 数据库连接池也有Apache Druid 是一个分布式内存实时分析系统,用于解决如何在大规模数据集下进行快速的、交互式的查询和分析的问题。Apache Druid 由 Metamarkets 公司(一家为在线媒体或广告公司提供数据分析服务的公司)开发,在2019年春季被捐献给 Apache 软件基金会。
“搜得寺内”~Apache的太深奥了,以后有机会再深入学习学习。这次主要讲的记录的是Druid数据库池连接配置。Ps:完整代码参考 我码云地址:https://gitee.com/lth1024/Security/tree/muster/
Druid是什么?
Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。
Druid可以做什么?
替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。
通过Druid提供的监控功能,监控SQL的执行时间、ResultSet持有时间、返回行数、更新行数、错误次数、错误堆栈信息,可以清楚知道连接池和SQL的工作情况,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。
Druid配置
pom.Xml配置
<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.14</version>
</dependency>
YML属性配置
Ps:不知道版本原因还是别的原因。参考一些网上配置进行配置时总是报错,后来把druid都放到了datasouce下发现就可以了。我现在SB版本2.2.6 druid版本1.1.14发现这样版本搭配配置没问题。
spring:datasource:# mysql数据库配置driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/security?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNullusername: rootpassword: 123456#================下面的是druid参数================# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙filters: config,wall,stat# 初始化数量initialSize: 5# 最小连接池数量minIdle: 2# 最大连接池数量maxActive: 20# 连接超时时间maxWait: 60000# 打开psCache, 对支持游标的数据库性能提升巨大poolPreparedStatements: true# 指定每个连接PsCache的大小maxPoolPreparedStatementPerConnectionSize: 20# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒timeBetweenEvictionRunsMillis: 6000# 指定一个空闲连接最少空闲多久后可被清除,单位是毫秒minEvictableIdleTimeMillis: 300000# 验证数据库连接的查询语句validationQuery: select 'x'# 当连接空闲时,是否执行连接测试testWhileIdle: true# 当从连接池借用连接时,是否测试该连接testOnBorrow: false# 在连接归还到连接池时是否测试该连接testOnReturn: false# 打开mergeSql,慢sql记录connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
druid数据库监测配置类
@Configuration
public class DruidConfig {......
}
/**
*注入DruidDataSource在yml配置文件中的配置
* prefix:获取yml里以spring.datasource为前缀的配置内容,减少一个个@Value获取
*/
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource getDataSource(){return new DruidDataSource();
}
/**
*配置Druid的监控:一个管理后台的Servlet
*/
@Bean
public ServletRegistrationBean<StatViewServlet> statViewServlet() {ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<StatViewServlet>(new StatViewServlet(), "/druid/*");Map<String,String> initParams = new HashMap<String,String>();initParams.put("loginUsername","admin"); //用户名initParams.put("loginPassword","123456"); //密码initParams.put("allow",""); //IP白名单(没有配置或者为空,则允许所有访问)initParams.put("deny",""); //IP黑名单 (存在共同时,deny优先于allow)bean.setInitParameters(initParams);return bean;
}
/**
*配置一个web监控的filter
*/
@Bean
public FilterRegistrationBean<WebStatFilter> webStatFilter(){FilterRegistrationBean<WebStatFilter> bean = new FilterRegistrationBean<WebStatFilter>();bean.setFilter(new WebStatFilter());Map<String,String> initParams = new HashMap<>();initParams.put("exclusions", "*.js,*.css,/druid/*"); 忽略资源bean.setInitParameters(initParams);bean.setUrlPatterns(Arrays.asList("/*"));return bean;
}
启动服务
Druid默认启动地址:http://localhost:8181/api/druid/index.html
Ps:由于我之前已经集成了Security访问Druid主页时总是被404.
记得去SecurityConfig里放开这个权限哦。
改完再去登录~
输入之前Servlet里配置的用户名和密码
完美。随便请求一个要进行数据库查询的请求。切记。要先发送请求后才会显示的哦。
可以看到刚才进行了登录请求。后台去数据库进行了用户名和权限的查询。能看到查询花费时间,点击相应sql语句还能看到里面具体sql语句哦。
总的来说还是可以的。再项目里加上这个配置,方便能根据业务情况来判断sql质量方便优化sql语句提高查询速度。
Nice~