CAT_source_analyze
CAT_source_analyze copied to clipboard
CAT之Server端源码分析(2)
EventAnalyzer介绍
Cat server中,以PeriodTask为消费单元,使用MessageAnalyzer进行消息消费,本篇介绍一下EventAnalyzer的功能,并捎带介绍一下MessageAnalyzer的实现
MessageAnalyzer接口实现结构如下
MessageAnalyzer
由MessageAnalyzer得知,实现该接口必须实现三个功能
- analyze,对消息队列的内容进行消费
- doCheckpoint 对已经消费生成报表的内容做checkpoint进行归档
- initialize 初始化,加载已经本地化的报表
AbstractMessageAnalyzer
analyzer的模板类,主要实现analyze和initialize功能 analyze会调用具体实现的process来消费 initialize负责设置analyzer的starttime和duration,并调用loadReports
EventAnalyzer
EventAnalyzer中聚合了EventDelegate,ReportManager,ServerFilterConfigManager,EventTpsStatisticsComputer几个类 Analyzer主要实现process,doCheckpoint,loadReports
EventDelegate
EventDelegate负责EventReport的生成,多个EventReport之间的聚合,建立报表分析任务几个功能。EventDelegate使用了EventReportMerger,EventReportTypeAggregator,EventReportCountFilter,EventTpsStatisticsComputer等类实现了在内存中对报表进行聚合、统计的功能。
EventDelegate并不管理Report,只会根据传入的Report进行操作
ReportManager
聚合了EventDelegate,ReportBucketManager,持有对应时间片的domain与Report映射 提供了可以根据时间和domain获得对应的报表的接口,从归档中加载报表的接口,将报表持久化的接口
ReportBucketManager
主要负责管理Bucket的初始化,提供删除已归档bucket的reports功能
ReportBucket
ReportBucket主要负责把report以key-value的方式整个持久化在本地,key存为index,value为对应的数据,在该类初始化时会把硬盘中的数据索引加载到内存中以供访问,提供storeById、findById功能