Leaf 源码分析(segment模式)

一、源码分析背景和目标

版本

  • 1.0.1

背景

  1. 由于leaf对第三方的依赖很少,segment模式下依赖mysql,这里对技术选型不做分析
  2. 双活的实现要求我们对这个中间件有充分的了解

目标

  1.  接手seq-service后,对代码逻辑流程进行熟悉
  2. 了解segment生成的时机和逻辑,方便在以后遇到问题时快速的在对应环境找原因
  3. 了解步长的自动伸缩机制,方便在实际项目中观察到步长变化时判断是否会造成问题
  4. 对其监控的可行性及方案

二、相对前端说明

leaf是一个独立的web服务,所以他的调用方都是其他服务

调用方式是发起http请求

三、主体流程分析

leaf的运作周期很简单,核心只有get()方法,get的时候会进行初始化的懒加载(updateSegmentFromDb()),然后就是根据步长进行获取。

segment使用到达一定比例时会触发下一个segment的生成(这就是美团之前进行的双buffer优化)

主逻辑都体现在下面的流程图中

四、代码片段分析

(代码片段暂未补充)

五、设计思想赏析

六、总结及目标达成

Article written by

Comments are closed, but trackbacks and pingbacks are open.