随笔分类
数据库连接池
在实际业务开发时,项目中会使用到多个数据源,不仅源于 Mysql的分库分表,也会有引用于不同场景的数据存储库,结余存在多个数据源,因此,对这些数据源进行管理也是有必要的,因此引入了数据库连接池技术
目前主要流行的便是两种数据连接池技术:
- Druid:为监控而生的数据库连接池
- HikariCP:号称性能最好的数据库连接池
Druid
Druid提供了非常强大的 sql监控功能,这实际上也去解决了 Mybatis存在的弊端,其实 Mybatis-plus同样如此,虽然能够去提供灵活的 sql条件查询,但我们无法对执行的 sql耗时进行监控,这也是其最大的弊端
Druid为我们提供了诸多的监控功能:
- SQL监控: 统计所有 sql语句的执行情况,基于 sql监控我们还可以去配置慢 sql记录,慢 sql会以 error级别输出在 console,然后我们可以通过配置日志文件的方式将慢 sql记录在指定文件中,并且对于 Druid sql监控会去监控到所有的 sql执行,我们也可以将所有的 sql执行记录到某个文件中去,这实际上也是我们所需要的
- *URL监控:**可以监控到所有对外暴露接口的执行,接口整体执行耗时、接口中 sql的 dbbc执行耗时、以及该接口 sql涉及到修改的记录数、以及 jdbc出错数等*
- *Spring监控:**可以利用 aop对指定接口的执行时间、jdbc数进行记录 - 默认是没有数据的,需要引入 Aop相关依赖*
- *Session监控:**可以查看到当前 Session的状态,创建时间、最后访问时间、请求数等*
- *多数据源:**通过数据源功能可以显示各个数据源的连接池配置,如数据库类型、初始化连接数目、最大连接数目、以及等待线程连接数 (当前等待获取连接的线程数,根据此值我们可以看出当前数据源的连接池参数配置是否合理,可进行动态调整等)*
Druid提供的监控特别强大,笔者目前了解到的其实也只是皮毛而已,这里来展示下最终效果: