Flume组件source,channel,sink源码分析

LifeCycleState:

IDLE, START, STOP, ERROR

 

[Source]: org.apache.flume.Source

         继承LifeCycleAware{stop() + start() + getLifeCycleState()} + NamedComponent{getName() + setName()}

         产生事件(Event),调用通道处理器(ChannelProcessor)的方法,将事件(Event)持久化到通道(Channel)中。

 

[Channel]: org.apache.flume.Channel

         继承LifeCycleAware{stop() + start() + getLifeCycleState()} + NamedComponent{getName() + setName()}

         将source(Event生产者)和sink(Event消费者)进行关联,Channel本是一个缓存(buffer),通道是线程安全的。

         put(Event e);                                                   //向Channel中放置事件(Event)

    take();                                                            //从Channel中提取事件(Event)

         Transaction getTransaction()                          //获取Channel事务

 

[Sink]: org.apache.flume.Sink

         继承LifeCycleAware{stop() + start() + getLifeCycleState()} + NamedComponent{getName() + setName()}

         连接到Channel,消费内容,发送给目的地。

         可以按照行为进行分组化(SinkGroup | SinkProcessor)

         Channel getChannel();

         setChannel(Channel ch);

         Status process();

 

posted @ 2016-12-02 15:13  Chinda  阅读(615)  评论(0编辑  收藏  举报