flume的各個組件及整體工作流程

flume的主要組件包括:

Source,SourceRunner,Interceptor,Channel,ChannelSelector,ChannelProcessor,Sink,SinkRunner,SinkProcessor,SinkSelector等

工作流程包含兩個部分:

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中拉取(將壓力分攤到sink,這一點類似於kafka的consumer)
一個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信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章