昨天以 StatFilter 分析了责任链模式,今天还以 StatFilter 来举例。
StatFilter 就是用来统计数据,用来支撑 Druid 监控的。
其实大概看一下 StatFilter 的结构,可以看到有很多 public 方法,第一个参数是 FilterChain,并且代码实现都是使用调用过滤器的同名方法,

过滤方法有很多,除了昨天介绍的 dataSource_getConnection,再举个例子:
@Override
public void connection_commit(FilterChain chain, ConnectionProxy connection) throws SQLException {
// 调用过滤器链的下一个节点的 connection_commit 方法,一层层调用下去,直到最后一个
chain.connection_commit(connection);
// 从过滤器链中取出 DataSource,再从中取出 DataSourceStat
JdbcDataSourceStat dataSourceStat = chain.getDataSource().getDataSourceStat();
// 对操作计数 commitCount + 1
dataSourceStat.getConnectionStat().incrementConnectionCommitCount();
}
public void incrementConnectionCommitCount() {
commitCount.incrementAndGet();
}
从上面的代码中可以看到,最终统计数据是存储在 JdbcDataSourceStat 中的。

本文详细解读StatFilter在Druid监控中的应用,通过实例解析其如何统计连接操作,重点关注DataSourceStat的结构和数据存储。重点介绍JdbcDataSourceStat类及其内部组件,以及StatFilter如何在DataSourceProxy接口的实现中更新统计数据。
最低0.47元/天 解锁文章
8301

被折叠的 条评论
为什么被折叠?



