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()
分别是启动组件,停止组件和获取组件的当前状态,具体的对于组件的管理 又委托给LifeCycleSupervisor去处理,那我们接下来就看看 LifeCycleSupervisor是怎么处理的:
Start
- 首先

本文详细探讨了Flume中组件的生命周期管理,包括Source、Sink和Channel等。文章介绍了各组件的状态(IDLE、START、STOP、ERROR)以及如何通过LifeCycleAware的start、stop和getLifeCycleState方法进行管理。重点分析了LifeCycleSupervisor在组件启动和关闭过程中的作用,以及ScheduledThreadPoolExecutor的purge方法在清理任务中的应用。最后,总结了组件启动和关闭的时序图。
最低0.47元/天 解锁文章
749

被折叠的 条评论
为什么被折叠?



