一、能力
支持流批处理
基于Event-Time事件处理的支持
exactly-once一致性语义的保证
高可用性
支持多种资源管理框架:Yarn、Mesos、Kubernetes、Stand-alone
运行应用的规模上来讲:Flink也是被设计运行有状态的流应用,整个应用并行化为成千上万的任务,在集群上分布式并行执行。
状态管理方面:Flink将任务的状态保存在内存中,如果内存容纳不下,会以可以带来比较好的访问效率的数据结构将其存储在磁盘上。
异步增量检查点算法
在申请资源方面,Flink会根据配置的并行度,自行识别所需资源,并通过REST方式申请。
二、State
对状态的管理是Flink的一大特长。那State在Flink中究竟是怎么一种地位?
1、Flink针对不同的数据结构提供了很多的状态原语,开发人员可根据访问模式,选择高效的状态原语对状态进行保存。
2、在State的管理方面,Flink提供了不同的State Backend对应用的状态数据进行管理,将State存放在内存或者以检查点的形式放在磁盘上。
3、通过State来实现exactly once一致性语义,State的检查点形式的保存为恢复提供了数据基础,检查点和恢复算法提供保障。
4、大状态的支持,对于计算来讲,如果数据在内存中,那么其访问效率就高,就能带来好的计算效率,内存资源有限,状态太大的话,肯定容纳不了。Flink这里采用的是异步增量检查点算法的方式实现对TB级的大状态的支持。
5、应用扩展性,有状态的应用怎么扩展