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 將文件中的統計數據畫成圖表


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM