项目中为什么通常flume和kafka要共同使用

系统架构方面的考虑:
(1)如果系统比较简单,应用场景比较单一,从简化系统的角度考虑,在满足应用需求的情况下可能只使用一个比较好。
(2)但是考虑到现有系统业务发展,为了后面的灵活扩展,在先用系统设计时留有一定的扩展性感觉更重要,
(3)可能使用Flume+kafka架构相对只使用Kafka会多占用1-2台机器做Flume日志采集,但是为了方便以后日志数据处理方式的扩展,可以采用Flume+kafka架构。


原理方面的考虑:
个人觉得原理不同,侧重点不同
Flume :管道流方式,提供了很多的默认实现,让用户通过参数部署,及扩展API.
Kafka :一个可持久化的分布式的消息队列。

(1)Kafka 是一个非常通用的系统。你可以有许多生产者和很多的消费者共享多个主题Topics。相比之下,Flume是一个专用工具被设计为旨在往HDFS,HBase发送数据。它对HDFS有特殊的优化,并且集成了Hadoop的安全特性。如果数据被多个系统消费的话,使用kafka;如果数据被设计给Hadoop使用,使用Flume。
(2)Flume可以使用拦截器实时处理数据。这些对数据屏蔽或者过量是很有用的。Kafka需要外部的流处理系统才能做到。
(3)Kafka和Flume都是可靠的系统,通过适当的配置能保证零数据丢失。然而,Flume不支持副本事件。于是,如果Flume代理的一个节点奔溃了,即使使用了可靠的文件管道方式,你也将丢失这些事件直到你恢复这些磁盘。如果你需要一个高可靠行的管道,那么使用Kafka是个更好的选择。

你可能感兴趣的:(kafka,flume)