Flink是什么
Flink是一款支持有状态运算的流计算引擎。
支持有状态运算是指数据的计算过程中可以保存计算的中间过程状态,比如我们要计算一个整数数据流的求和,那么我们就需要一个中间变量把数据流中的每一项数据加到这个变量上。而这个变量就是计算的中间状态。Flink框架会帮你管理状态的保存和复原。
流计算是指我们要针对一个数据流进行源源不断的计算,产出实时的结果。比如说我们曾经看到过天猫淘宝的双11大屏,上面有当前的GMV成交量的数据,这个数字在屏幕上疯狂的跳动。这就是通过流计算产出的实时GMV成交量数据。
Flink有以下特性:
- 应用场景丰富:支持事件驱动的应用
- 计算结果准确:支持Exactly-Once的语义,确保数据一致性。能正确处理延迟达到的数据。
- API用法灵活:提供了分层次的API,有高层次使用方便的API也有低层次灵活扩展的API。
- 运维操作方便:部署灵活,支持高可用。
- 支持大规模扩容:支持水平扩容的架构。支持数量大的数据状态。支持增量检查点。
- 计算性能优秀:数据处理的延迟量低,吞吐量高,在内存中完成所有的计算过程。
Flink适用场景
事件驱动型应用
事件驱动应用指的是这个应用程序从一个地方获取到事件之后,触发一些动作,或者把这些数据更新到数据库里面,这种就是事件驱动型应用。下图就是传统应用和事件驱动型应用的差别。
事件