摘要: 所有的性能收集其实都是基于aop的,对于jedisCluster性能(jedis的一样)的收集,因为其并没有提供类似于mybatis的intercept机制,所以只能手动实现可供收集性能数据的切面。 说到切面,第一个就会想到代理,接下来就通过cglib实现对jedisCluster的代理。 动态代理 阅读全文
posted @ 2021-02-08 18:23 jingyi_up 阅读(281) 评论(0) 推荐(0) 编辑
摘要: mybatis的性能指标统计与Http类似,也是基于aop的方式,利用mybatis提供的intercept机制。直接看下Interceptor的定义: @Intercepts( value = { @Signature (type=Executor.class, method="update", 阅读全文
posted @ 2021-02-08 15:05 jingyi_up 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 这一篇主要是介绍一种使用Prometheus收集服务健康状态指标的案例,以常用的Druid数据源为例。 先看几个公共类的定义: HealthStats:其中定义了MeterRegistry和namespace(用来区分不同的统计对象) public class HealthStats { priva 阅读全文
posted @ 2021-02-08 14:25 jingyi_up 阅读(1527) 评论(0) 推荐(0) 编辑
摘要: 1、ImportBeanDefinitionRegistrar接口 该接口用来实现动态注入Bean,可以实现该接口,但是还要利用@Import进行导入才能实现Bean的注入。使用示例如下: 定义一个注解: @Retention(RetentionPolicy.RUNTIME) @Target(Ele 阅读全文
posted @ 2021-02-08 11:04 jingyi_up 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 一、springBoot生命周期伴随的事件 springBoot的启动过程就是通过事件机制驱动的,可以通过监听这些事件做一些定制化的功能。因为springBoot已经成为众多中间件和框架的基础,所以了解其整个生命周期是很必要的,接下来就从源码的角度去分析它的整个启动流程。 二、源码分析 1、实例化S 阅读全文
posted @ 2021-02-08 11:03 jingyi_up 阅读(121) 评论(0) 推荐(0) 编辑