Kafka实战-实时日志统计流程 - 哥不是小萝莉 - 博客园
http://www.cnblogs.com/smartloli/p/4581501.html
2.项目流程
在整合这套方案的时候,项目组也是经过一番讨论,在讨论中,观点很多,有人认为直接使用Storm进行实时处理,去掉Kafka环节;也有认为直接使用Kafka的API去消费,去掉Storm的消费环节等等,但是最终组内还是一致决定使用这套方案,原因有如下几点:
【业务模块化】
【功能组件化】
我们认为,Kafka在整个环节中充当的【职责应该单一】,这项目的整个环节她就是一个【中间件】,下面用一个图来说明这个原因,如下图所示:
//
整个项目流程如上图所示,这样划分使得各个业务模块化,功能更加的清晰明了。
Data Collection
负责从各个节点上实时收集用户上报的日志数据,我们选用的是Apache的Flume NG来实现。
Data Access
由于收集的数据的速度和数据处理的速度不一定是一致的,因此,这里添加了一个中间件来做处理,所使用的是Apache的Kafka,关于Kafka集群部署,大家可以参考我写的《Kafka实战-Kafka Cluster》。另外,有一部分数据是流向HDFS分布式文件系统了的,方便于为离线统计业务提供数据源。
Stream Computing
在收集到数据后,我们需要对这些数据做实时处理,所选用的是Apache的Storm。关于Storm的集群搭建部署博客后面补上,较为简单。
Data Output
在使用Storm对数据做处理后,我们需要将处理后的结果做持久化,由于对响应速度要求较高,这里采用Redis+MySQL来做持久化。整个项目的流程架构图,如下图所示:
网友评论