服务器端初始化
|
CatServlet.init CatServlet.initComponents DefaultModuleInitializer.execute DefaultModuleInitializer.expandAll CatHomeModule.setup TcpSocketReceiver.init() CatClientModule.execute Cat.setContainer PlexusContainer.lookup(MessageManager.class); MessageManager.initialize TcpSocketSender.initialize PlexusContainer.lookup(MessageProducer.class); MessageProducer.constructor |
接受客户端采集的数据
|
TcpSocketReceiver.MessageDecoder.decode MessageCodec.decode DefaultMessageHandler.handle RealtimeConsumer.consume Period.distribute for all PeriodTask PeriodTask.enqueue |
异步分销数据
|
PeriodTask.run() MessageAnalyzer.analyze MessageAnalyzer.process |
异步将消息持久化
|
PeriodManager.EndTaskThread.run for all Period Period.finish for all PeriodTask task PeriodTask.finish MessageAnalyzer.doCheckpoint ReportManager.storeHourlyReports ReportBucketManager.getReportBucket DefaultReportManager.storeFile ReportBucket.storeById |
web端请求处理
|
MVC.service DefaultRequestLifecycle.handle com.dianping.cat.report.page.transaction.Handler.handleOutbound Handler.getHourlyReport CompositeTransactionService.invoke RemoteTransactionService.invoke http://127.0.0.1:8080/cat/r/model/transaction/cat_fast_client/CURRENT?op=xml&ip=All com.dianping.cat.report.page.model.Handler.handleOutbound( LocalTransactionService.buildReport LocalTransactionService.getReportFromLocalDisk ReportBucketManager.getReportBucket |
Posted in: CAT
Comments are closed.