博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大众点评Cat源码分析(二)——MessageTree从服务端接收到写入磁盘逻辑序列
阅读量:5734 次
发布时间:2019-06-18

本文共 712 字,大约阅读时间需要 2 分钟。

hot3.png

一、MessageTree写入磁盘逻辑序列图

输入图片说明

二、MessageTree写入逻辑步骤

  1. MessageTree被Period分发到不同的PeriodTask

  2. 不同的PeriodTask调用对应的Analyzer处理MessageTree,上面的序列图,是以DumpAnalyzer为例

  3. DumpAnalyzer调用抽象父类AbstractMessageAnalyzer中的analyze方法,处理messageTree,该方法内容调用抽象方法process,每一个Analyzer的process都有具体的Analyzer做不同的实现。DumpAnalyzer按照自己的业务逻辑实现process方法。

  4. 该DumpAnalyzer的process方法调用LocalMessageBucketManager的storeMessage方法,将MessageTree落盘。具体的落盘分两步,如下:

第一步: 1、将MessageTree分发到队列中,启动20个MessageZip的异步线程,做压缩处理,将多个MessageTree压缩进一个MessageBlock,如果MessageBlock的大小>=64k,就将该MessageBlock插入到m_messageBlocks队列中,交个BlockDumper和LogviewUploader处理。

第二步: BlockDumper将m_messageBlocks队列中的block逐个写入磁盘,具体写入逻辑,参考

LogviewUploader将不在有效期内的所有文件给删了。

转载于:https://my.oschina.net/liangxiao/blog/1581218

你可能感兴趣的文章
利用广播实现ip拨号——示例
查看>>
ProbS CF matlab源代码(二分系统)(原创作品,转载注明出处,谢谢!)
查看>>
OC中KVC的注意点
查看>>
JQ入门(至回调函数)
查看>>
1112: 零起点学算法19——输出特殊值
查看>>
【洛天依】几首歌的翻唱(无伴奏)
查看>>
strcspn
查看>>
OpenSSL初瞻及本系列的博文的缘由
查看>>
ISO8583接口的详细资料
查看>>
tmux不自动加载配置文件.tmux.conf
查看>>
经验分享:JavaScript小技巧
查看>>
[MOSEK] Stupid things when using mosek
查看>>
程序实例---栈的顺序实现和链式实现
查看>>
服务的使用
查看>>
Oracle 用户与模式
查看>>
网站开发流程以及HTML5简介(八)
查看>>
MairDB 初始数据库与表 (二)
查看>>
RabbitMQ】三种Exchange模式——订阅、路由、通配符模式
查看>>
连接数据库——java
查看>>
拥在怀里
查看>>