What is Flink
Flink是(无边界/有边界的)流数据的状态计算之分布式计算引擎和框架。
对时间和状态的精确控制,使得 Flink 的Runtime能够在无界流上运行任何类型的应用程序;有界流由专门为固定大小的数据集设计的算法和数据结构进行内部处理,从而产生出色的性能。
有界流和无界流的图示
方便部署
Flink是一个分布式系统,需要为运行的应用分配资源,Flink可以与通用的集群资源管理器交互,如:YARN,K8S。
除了与集群交互之外,Flink也可以配置为独立集群(stand-alone)来运行。
任何规模的流状态应用程序
应用程序被并行化为可能在集群中分布和并发执行的数千个任务。 因此,应用程序可以利用几乎无限数量的 CPU、主内存、磁盘和网络 IO。 此外,Flink 可以轻松维护非常大的应用程序状态。 其异步和增量检查点算法确保对处理延迟的影响最小,同时保证恰好一次的状态一致性。
- 数万亿个时间/day
- 数千个内核上运行/day
- 多个 TB 的状态
利用内存性能
有状态的Flink应用程序针对本地状态访问进行了优化,任务的状态总是在内存中,如果状态的大小超过了可用内存,则保存在访问高效的磁盘数据结构中。因此,任务通过访问本地(通常是内存中的)状态来执行所有计算,从而产生非常低的处理延迟,Flink 通过定期和异步地将本地状态检查点到持久存储来保证在发生故障时恰好一次的状态一致性。
What is Stateful Functions?
Stateful Functions是简化有状态分布式应用的一组API。
- 处理具有低延迟特点
- 对有限的资源进行约束