当前位置:网站首页 > R语言数据分析 > 正文

druid连接池配置文件(druid 连接池配置)



前一篇文章我们熟悉了HikariCP连接池,也了解到它的性能很高,今天我们讲一下另一款比较受欢迎的连接池:Druid,这是阿里开源的一款数据库连接池,它官网上声称:为监控而生!他可以实现页面监控,看到SQL的执行次数、时间和慢SQL信息,也可以对数据库密码信息进行加密,也可以对监控结果进行日志的记录,以及可以实现对敏感操作实现开关,杜绝SQL注入,下面我们详细讲一下它如何与Spring集成,并且顺便了解一下它的监控的配置。

文章要点:

访问:http://127.0.0.1:8080/druid/ ,弹出登陆界面,用户和密码对应我们的配置文件中设置的用户名和密码

登陆进去可以看到里面有很多监控,这里我们只看我们本次所关心的,数据源,SQL监控,URL监控,其他的可以自行研究。

下面我们分别执行几次,我们准备好的验证接口
http://127.0.0.1:8080/all
http://127.0.0.1:8080/getUser/1
http://127.0.0.1:8080/getUser/2
http://127.0.0.1:8080/getUser/one
http://127.0.0.1:8080/getUser/two


上面我们看到我们总共四个语句,以及四个语句的运行情况
SQL监控项上,执行时间、读取行数、更新行数都有区间分布,将耗时分布成8个区间:

这里你可能会有疑问 ,id =1和id=2怎么还是分开的,如果我id有一亿个,难道要在监控页面上有一亿条记录吗?不是应该都应该是id=?的形式吗?这里后面会讲到,涉及到sql合并的监控配置

在druid的jar中,META-INF/druid-filter.properties中有其内置的filter,内容如下:

default、stat、wall等是filter的别名,可以在application.properties中可以通过spring.datasource.druid.filters属性指定别名来开启相应的filter,也可以在Spring中通过属性注入方式来开启,接下来介绍一下比较常用的filter

2、超过2ms的语句,在监控页面红色展示出来
3、慢SQL在日志中会被体现出来

继承stat,基本特性和stat是一样的,不做延伸

Druid内置提供了四种LogFilter(Log4jFilter、Log4j2Filter、CommonsLogFilter、Slf4jLogFilter),用于输出JDBC执行的日志


我们可以看到执行SQL的整个过程,开启连接>从连接池获取一个连接>组装SQL语句>执行>结果集返回>连接池回收连接
这里只用了log4j2这一种类型,其他可以自行去验证。

WallFilter的功能是防御SQL注入攻击。它是基于SQL语法分析,理解其中的SQL语义,然后做处理的,智能,准确,误报率低。减少风险的发生,wall拦截器还是很重要的。比如说不允许使用truncate,不允许物理删除,这时候wall就用得上了。配置方式有两种:

这种配置是默认配置,而且大多数都不会拦截,可能不符合特定的场景,默认属性值参照:https://www.bookstack.cn/read/Druid/ffdd9118e.md

这种方式的好处是:我们可以针对特定场景进行限定,比如说不能用存储过程,不能物理删除,是否允许语句中有注释等等。

Config作用:从配置文件中读取配置;从远程http文件中读取配置;为数据库密码提供加密功能
实际上前两项作用意义不大,最关键的是第三项作用,因为数据库密码直接写在配置中,对运维安全来说,是一个很大的挑战。Druid为此提供一种数据库密码加密的手段ConfigFilter
如何使用:

使用下面的命令生成数据库密码的密文和秘钥对

自己启动一下试试,发现一切正常,信息安全问题也解决了。

选择哪一款就见仁见智了,不过两款都是开源产品,阿里的Druid有中文的开源社区,交流起来更加方便,并且经过阿里多个系统的实验,想必也是非常的稳定,而Hikari是SpringBoot2.0默认的连接池,全世界使用范围也非常广,对于大部分业务来说,使用哪一款都是差不多的,毕竟性能瓶颈一般都不在连接池。大家可根据自己的喜好自由选择

到此这篇druid连接池配置文件(druid 连接池配置)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • win11安装vmware(win11安装vmware16蓝屏)2025-04-20 10:36:07
  • raiseasuilen是专业乐队吗(raise a suilen主唱)2025-04-20 10:36:07
  • redis连接数配置(redis连接数怎么看)2025-04-20 10:36:07
  • oracle教程 菜鸟(oracle教程 csdn)2025-04-20 10:36:07
  • ruinita手表价格及图片(ruixine手表价格表)2025-04-20 10:36:07
  • druiddatasource 密码加密(druid加密算法)2025-04-20 10:36:07
  • docker版本分为什么与什么(docker 不同版本 兼容)2025-04-20 10:36:07
  • argparser怎么安装(安装arch)2025-04-20 10:36:07
  • aurora是什么品牌(aurora是什么品牌的衣服)2025-04-20 10:36:07
  • 字符串转为int(字符串转为inputstream)2025-04-20 10:36:07
  • 全屏图片