基本概念
Flink是一个分布式、有状态的实时流式处理系统(编程框架)
官网地址:flink.apache.org
flink 主要是 Java 语言开发而成,但对用户提供了 java、scala、python 编程 API。
flink 以流处理方式作为基础,并通过有界流来实现批计算,从而实现批流一体。
运行架构
Flink 集群采取 Master - Slave 架构
- Master 的角色是 JobManager,负责集群和作业管理
- Slave 的角色是 TaskManager,负责执行计算任务
- 客户端 Client 负责管理集群和提交任务,JobManager 和 TaskManager 是集群的进程。
特性
-
适用于几乎所有的流式数据处理场景
- 事件驱动型应用
- 流、批数据分析
- 数据管道及ETL
-
自带状态管理机制
-
准确性保证
- exactly-once 状态一致性
- 事件时间处理
- 专业的迟到数据处理
-
丰富的多层API
-
规模弹性扩展
- 可扩展的分布式架构,包括集群级别的资源灵活配置和算子粒度的独立并行度配置
- 支持超大状态管理
-
强大的容错能力
- 增量 checkpoint 机制
- 保存点恢复机制
-
优秀的性能
- 低延迟
- 高吞吐
- 内存计算