Dubbo Monitor 实现原理是什么?
Posted 四猿外
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 钟, 将文件中的统计数据画成图表
以上是关于Dubbo Monitor 实现原理是什么?的主要内容,如果未能解决你的问题,请参考以下文章