druid深入学习(记一次线上问题排查)

1.场景

由于公司线上运行项目突然出现访问不到接口但是程序运行正常的问题,于是想起了druid连接池,一个为监控而生的数据库连接池!
问题排查1:
加监控 druid

问题排查2:
netstat -t 查看tcp端口连接情况,一个完整的tcp连接有三次握手,四次挥手,期间每个阶段对应不同状态
查看文章的第二点有详细描述 https://blog.csdn.net/CharJay_Lin/article/details/81259880

问题排查3:
jmeter压力测试:http://www.cnblogs.com/TankXiao/p/4045439.html

2.druid的相关资料

直接看官方源码与文档啦!走你~

源码地址:https://github.com/alibaba/druid
文档地址:地址
springboot集成druid:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter

看了spring集成的druid,那么stater又是何方神圣?
springboot的四大神器之一:https://segmentfault.com/a/1190000004319673
类似的stater还有mybatis-spring-boot-starter等

3.开始搭建

分析什么?文档都很详细了,直接上代码!
springboot集成druid
1)不使用 druid-spring-boot-starter
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.6</version>
</dependency>

建议使用1.1.x版本,1.0有bug擦,初次使用碰到sql解析异常,然后druid防火墙不让执行了,想了想要不要去提个issue,但是看了一下自己的版本号,才1.0.18,那么就升级一下版本号试试
https://gitee.com/charjay/springboot-druid-demo.git

项目运行起来之后访问user/list接口,然后登录druid就可以看到监控数据了
登录地址 localhost:8080/druid/login.html
账号密码 admin/admin

2)使用 druid-spring-boot-starter
这个直接看github,里面有例子,配置一下数据库连接,运行DemoApplication

3)监控页面

image1.png | center | 1341x578

有了这个监控页面我们可以做什么呢?我们可以对自己项目的逻辑,接口,sql等进行调优哦。

4.源码分析

druid确实好用,它是如何实现监控的呢?

waiting。。。

猜你喜欢

转载自blog.csdn.net/CharJay_Lin/article/details/81775585