FLUME 之event流程

source->channel,数据由source写入channel,主动模式,主要步骤如下:

  • 一个SourceRunner包含一个Source对象,一个Source对象包含一个ChannelProcessor对象,一个ChannelProcessor对象包含多个Interceptor对象和一个ChannelSelector对象

    1. SourceRunner启动Source,Source接收Event

    2. Source调用ChannelProcessor

    3. ChannelProcessor调用Interceptor进行过滤Event操作

    4. ChannelProcessor调用ChannelSelector对象根据配置的策略选择Event对应的Channel(replication和multiplexing两种)

    5. Source将Event发送到对应的Channel中

  • channel->sink,数据由sink主动从channel中拉取,一个SinkRunner对象包含一个SinkProcessor对象,一个SinkProcessor包含多个Sink或者一个SinkSelector

    1. SinkRunner启动SinkProcessor(DefaultSinkProcessor,FailoverSinkProcessor,LoadBalancingSinkProcessor 3种)

    2. 如果是DefaultSinkProcessor的话,直接启动单个Sink

    3. FailoverSinkProcessor,LoadBalancingSinkProcessor对应的是SinkGroup

    4. FailoverSinkProcessor从SinkGroup中选择出Sink并启动

    5. LoadBalancingSinkProcessor包含SinkSelector,会根据SinkSelector在SinkGroup中选择Sink并启动

    6. Sink 从Channel中消费Event信息

猜你喜欢

转载自www.cnblogs.com/xiangyuguan/p/11681135.html