最近刚学习完实时计算的框架构建,按照自己的理解梳理了一份框架流程图,如有错误欢迎指正。
框架总图:
先明确一个点,实时计算的关键在于数据生产和消费分离。
在最原始的时候,我们有一张维度数据表,可能存在MySQL中,然后有APP在前端或后端进行数据埋点,并采集行为日志。
行为日志本质上是一个文件,APP在产生日志的时候,为了防止单一过大的文件,会采取按时间间隔滚动或者大小滚动产生的机制,例如log4j有RollingFileAppender或者DailyRollingFileAppender的配置项。对于这样的日志文件,可以使用flume采集走,如果行为日志是存储在服务器集群上的,那么每一台服务器都需要安装flume,flume持续监控行为日志的目录。
一旦监控到有数据产生,进入kafka服务器,并建立一个topic,开始了数据处理。处理这样的数据时,通常使用flink,处理数据是模块化处理的,一个flink任务只会做一件事kafka各分区内开始堆积数据时ÿ