flume 源码阅读之生命周期
阅读flume源码的时候,突然感觉LifeCycleAware这个名字好熟悉啊,感觉没个框架会出现这样的词眼,记得之前看Spring的源码,Tomcat的源码,这写个框架都有对组件的生命周期的管理,那么下面我们就看看flume是怎么进行组件的生命周期的管理的
flume中有哪些组件
从图中可以看出,flume中存在的几大组件
1.Source —> SourceRunner (Source 及 source的处理器)
2.Sink —->SinkSelector—>SinkProcessor(Sink 及 Sink的处理器)
3.Channel(Channel)
4.ConfigurePropertiesProvider (配置文件解析器)
5.LifecycleSupervisor(具体LifeCycle的管理类)
flume的组件分别有哪些个状态
- IDEL (空闲状态)
- START (运行中状态)
- STOP (停止状态)
- ERROR (异常错误状态)
flume是怎样管理这些组件
从代码层面我们可以看到,LifeCycleAware有三个方法分别是:
- public void start()
- public void stop()
- public LifeCycleState getLifeCycleState()
分别是启动组件,停止组件和获取组件的当前状态,具体的对于组件的管理 又委