1 为什么会有flink
flink是一个面向大量数据实现流批一体的处理框架,早期的大量数据处理模型最早使用的是map/reduce处理架构,就是启动一个个map,reduce进程将数据处理存盘,再从磁盘读取再处理写到另一个地方,中间耗费大量io和序列化/反序列化的操作。后来又在map/reduce的基础上发展tez(可以理解为mr的优化版本,即将mr执行逻辑进行优化,中间执行逻辑部分在内存中存储),之后又发展的spark(基于批处理,批模拟流处理),flink(实时处理,也可以基于实时流去模拟批处理)计算模型。
2 flink能做什么
flink可以处理有界流和无界流,即官网的(bound and unbound),通俗的说就是可以处理像数据库表一样在宏观层面有固定数据的数据和像kafka这种不断实时传递的数据源。
3 flink如何做的
在写之前先来一个小插曲:
在我们学习这种第三方框架的时候如何能做到对某种工具比较深层次的认识,这是一个值得去思考的问题,如果我们只盯着框架实现了那些功能,无异于削足适履,导致在具体场景中只会生搬硬套,终究无法形成自己的一套认识体系。
读者对框架的认识分为两种方向:
1)框架实现业务方向,即框架想要实现的具体生产环境场景,
举个例子:假如抛弃实时流框架,让你实现一个工具,要求满足,数据不丢失,不重复消费,可以达到毫秒级别实时统计,且能支持Tb级别的实时数据处理,这个时候你会如何去设计这个工具。
2)框架的设计对计算机cpu,内存,缓存,io层面的使用情况
结合以上两种方向去逐步探索,思考就会达到一个比较深层次认识。
以上为读者工作的一点思考,有更好想法的小伙伴可以下方留言哈