🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
:-: ![](https://img.kancloud.cn/d8/cc/d8ccf881c20dcfd6b326488a6ca0a5cb_1172x1286.png) Flume工作流程 1. Source->Channel 数据由 Source 写入 Channel,**主动模式**,主要步骤如下: 1)SourceRunner 启动 Source,Source 接收 Event; 2)Source 调用 ChannelProcessor; 3)ChannelProcessor 调用 Interceptor 进行过滤 Event 操作; 4)ChannelProcessor 调用 ChannelSelector 对象根据配置的策略选择 Event对应的 Channel(replication 和 multiplexing 两种); 5)Source 将 Event 发送到对应的 Channel 中。 2. Channel->Sink 数据由 Sink 主动从 Channel 中**拉取**: 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 信息。