Dubbo Monitor 实现原理是什么?

Consumer 端在发起调用之前会先走filter 链; provider 端在接收到请求时也是先走filter 链, 然后才进行真正的业务逻辑处理。

默认情况下,在consumer 和provider 的filter 链中都会有Monitorfilter。

1、MonitorFilter 向DubboMonitor 发送数据

2、DubboMonitor 将数据进行聚合后(默认聚合1min 中的统计数据)暂存到ConcurrentMap<Statistics, AtomicReference> statisticsMap,然后使用一个含有3 个线程(线程名字:DubboMonitorSendTimer)的线程池每隔1min 钟,调用SimpleMonitorService 遍历发送statisticsMap 中的统计数据,每发送完毕一个,就重置当前的Statistics 的AtomicReference

3、SimpleMonitorService 将这些聚合数据塞入BlockingQueue queue 中( 队
列大写为100000)

4、SimpleMonitorService 使用一个后台线程(线程名为:DubboMonitorAsyncWriteLogThread)将queue 中的数据写入文件(该线程以死循环的形式来写)

5、SimpleMonitorService 还会使用一个含有1 个线程( 线程名字:DubboMonitorTimer)的线程池每隔5min 钟, 将文件中的统计数据画成图表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值