source->channel,数据由source写入channel,主动模式,主要步骤如下:
-
一个SourceRunner包含一个Source对象,一个Source对象包含一个ChannelProcessor对象,一个ChannelProcessor对象包含多个Interceptor对象和一个ChannelSelector对象
-
SourceRunner启动Source,Source接收Event
-
Source调用ChannelProcessor
-
ChannelProcessor调用Interceptor进行过滤Event操作
-
ChannelProcessor调用ChannelSelector对象根据配置的策略选择Event对应的Channel(replication和multiplexing两种)
-
Source将Event发送到对应的Channel中
-
-
channel->sink,数据由sink主动从channel中拉取,一个SinkRunner对象包含一个SinkProcessor对象,一个SinkProcessor包含多个Sink或者一个SinkSelector
-
SinkRunner启动SinkProcessor(DefaultSinkProcessor,FailoverSinkProcessor,LoadBalancingSinkProcessor 3种)
-
如果是DefaultSinkProcessor的话,直接启动单个Sink
-
FailoverSinkProcessor,LoadBalancingSinkProcessor对应的是SinkGroup
-
FailoverSinkProcessor从SinkGroup中选择出Sink并启动
-
LoadBalancingSinkProcessor包含SinkSelector,会根据SinkSelector在SinkGroup中选择Sink并启动
-
-