CAT_source_analyze icon indicating copy to clipboard operation
CAT_source_analyze copied to clipboard

CAT之Server端源码分析(2)

Open lytofb opened this issue 8 years ago • 0 comments

EventAnalyzer介绍

Cat server中,以PeriodTask为消费单元,使用MessageAnalyzer进行消息消费,本篇介绍一下EventAnalyzer的功能,并捎带介绍一下MessageAnalyzer的实现

MessageAnalyzer接口实现结构如下

cat_analyzer_consumer

MessageAnalyzer

由MessageAnalyzer得知,实现该接口必须实现三个功能

  1. analyze,对消息队列的内容进行消费
  2. doCheckpoint 对已经消费生成报表的内容做checkpoint进行归档
  3. 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功能

lytofb avatar Feb 10 '17 02:02 lytofb