一.串行模式
Flume Agent之间相互连接
这种模式是将多个 flume 顺序连接起来了,从最初的 source 开始到最终 sink 传送的目的存储系统。此模式不建议桥接过多的 flume 数量,flume 数量过多不仅会影响传输速率,而且一旦传输过程中某个节点 flume 宕机,会影响整个传输系统。
二.聚合模式
这种模式也非常常见,日常 web 应用通常分布在上百个服务器,大者甚至上千个、上万个服务器。产生的日志,处理起来也非常麻烦。
用 flume 的这种组合方式能很好的解决这一问题,每台服务器部署一个 flume 采集日志,传送到一个集中收集日志的 flume,再由此 flume 上传到 hdfs、hive、hbase 等,进行日志分析。
三.复制和多路复用
Flume 支持将事件流向一个或者多个目的地。这种模式可以将相同数据复制到多个 channel 中,或者将不同数据分发到不同的 channel 中,sink 可以选择传送到不同的目的地。
注:在source和channel之间会自定义拦截器或者其他,此时会需要多个channel和多个sink,把不同的类型的日志放进相应的文件夹中去。
四、负载均衡和故障转移模式
Flume 支持使用将多个 sink 逻辑上分到一个 sink 组,sink 组配合不同的 Sink Processor 可以实现负载均衡和错误恢复的功能。