性能
- hikariCP>druid>tomcat-jdbc>proxool>dbcp>c3p0
- hikariCP 的性能十分优异,号称java平台最快的数据库连接池。
- hikariCP在并发较高的情况下,性能基本上没有下降。
- 从字节码的维度优化代码。让方法尽量在35个字节码以下,来提升jvm的处理效率。 (default inline threshold for a JVM running the server Hotspot compiler is 35 bytecodes )
- HiKariCP性能比Druid高
- HiKariCP是Spring Boot 2+官方支持并默认内置,就像jackson一样,和Spring Boot兼容性更好
- Druid的优势是监控完善,扩展性更好(但拦截过多也会增加框架复杂度以及框架性能)
扩展性
- 阿里巴巴出品的druid功能最为全面。
- 可视化监控,统计数据较为全面。
- 当然,如果使用的是云数据库,云数据库已经自带了大量监控指标。
关于bug
网上有一大堆关于druid踩坑笔记,无外乎都是连接池泄漏,造成连接池爆满无法获取连接,系统停摆,我随便找几个url
从Druid数据库连接池获取连接的时候超时了,Socket读阻塞
当然druid官方也有征对连接池泄漏的解决方案,
地址:连接泄漏监测 · alibaba/druid Wiki · GitHub
所以,使用druid时真的需要慎重。特别是水平不是很高的开发人员,项目又比较重要的话,首选推荐的还是springboot内置自带的hikariCP,无论从代码量,效率,稳定性,0配置易用性都是排第一的。代码写的好,哪有那么多需要监控的。个人认为
总结
如果对监控和跟踪没有要求,可以使用hikariCP, 如果有监控方面的需求,可以使用druid。具体选HiKariCP或Druid视团队及具体需求而定