咱们前面对项目的需求进行了分析,整体上来说是需要三个大的功能模块,那下面我们就来分析一下,想要实现这些功能模块,具体使用哪些技术框架比较合适。
一、技术选型
1、数据采集
咱们前面学习了Flume这个数据采集工具
其实还有一些类似的数据采集工具,Logstash、FileBeat,这两个也可以实现数据采集
那这三个日志采集工具我们需要如何选择呢?
首先从性能消耗上面来说,Flume和Logstash的性能消耗差不多,都是基于JVM执行的,都是重量级的组件,支持多种数据源和目的地。
FileBeat是一个只支持文件数据采集的工具,是一个轻量级组件,性能消耗比价低,它不是基于JVM执行的,它是使用go语言开发的。
我们在采集数据的时候可以分为两种情况
第一种是把采集工具部署到产生数据的服务器上面
web项目产生的日志数据直接保存在服务器上面,并且这个服务器的性能比较高,可以允许我在上面部署Flume数据采集工具,这样也不会对上面的web项目的稳定性产生什么影响。
第二种是把采集工具部署在一个独立的服务器上面
web项目产生的日志数据直接保存在服务器上面,但是这个服务器的性能一般,并且对web项目的稳