Flink架构详解(4大核心架构)

Flink架构详解(4大核心架构)-mikechen

什么是Flink

Apache Flink是一个开源的分布式流处理框架,它支持在内存中对无限量的数据进行高效的流式处理。

 

Flink特点

Flink 有如下特点:

  1. 批流一体:统一批处理和流处理;
  2. 分布式:Flink 程序可以运行在分布式环境下;
  3. 高性能、高可用;
  4. 准确性:Flink 可以保证数据处理的准确性;

 

Flink的架构

Flink 的架构可以分为四个主要层次:

+--------------------------------------+
|                                      |
|         Flink Application            |
|                                      |
+--------------------------------------+
                    |
+--------------------------------------+
|                                      |
|            Flink APIs                 |
|     (DataStream API and DataSet API)  |
|                                      |
+--------------------------------------+
                    |
+--------------------------------------+
|                                      |
|          Flink Runtime               |
|   (Task Managers and Job Managers)   |
|                                      |
+--------------------------------------+
                    |
+--------------------------------------+
|                                      |
|     Distributed Storage Backends     |
|      (RocksDB, Hadoop HDFS, etc.)    |
|                                      |
+--------------------------------------+

1.应用层

应用层是使用 Flink 的最上层,应用层负责定义 Flink 作业,包括数据源、转换操作和输出操作等。

Flink 支持各种类型的数据源,包括本地文件、Kafka、Hadoop HDFS 等,同时提供了许多内置的数据转换操作和输出操作。

 

2.API 层

API 层提供了 Flink 的核心功能,它定义了数据流的基本概念和操作,包括数据流、状态和窗口等。

Flink 提供了两种 API:DataStream API 和 DataSet API。

  • DataStream API 用于处理流数据;
  • DataSet API 用于处理有限数据集;

 

3.运行时层

运行时层是 Flink 的核心组件,它负责执行应用程序。

Flink 将应用程序转换为数据流图,并将其分发到集群中的任务管理器(Task Manager)上执行。

任务管理器负责将任务划分为子任务,并将其分配给具体的 Task Slot 执行。

 

4.分布式存储层

分布式存储层是 Flink 的数据存储组件,它支持在内存和磁盘上存储数据。

并提供了一些高级的数据管理功能,比如:状态后端、保存点和检查点等。

Flink 支持多种存储后端,包括 RocksDB、Hadoop HDFS 等。

总体来说,Flink 的架构设计非常灵活和可扩展,它可以根据不同的需求和场景进行配置和优化。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法