# Apache Flink

**Apache Flink**是由[Apache软件基金会](https://zh.wikipedia.org/wiki/Apache%E8%BD%AF%E4%BB%B6%E5%9F%BA%E9%87%91%E4%BC%9A)开发的[开源](https://zh.wikipedia.org/wiki/%E5%BC%80%E6%BA%90)流处理[框架](https://zh.wikipedia.org/wiki/%E8%BD%AF%E4%BB%B6%E6%A1%86%E6%9E%B6)，其核心是用[Java](https://zh.wikipedia.org/wiki/Java)和[Scala](https://zh.wikipedia.org/wiki/Scala)编写的分布式流数据流引擎。[\[1\]](https://zh.wikipedia.org/wiki/Apache_Flink#cite_note-1)[\[2\]](https://zh.wikipedia.org/wiki/Apache_Flink#cite_note-2)Flink以[数据并行](https://zh.wikipedia.org/wiki/%E6%95%B0%E6%8D%AE%E5%B9%B6%E8%A1%8C)和[流水线](https://zh.wikipedia.org/wiki/%E6%B5%81%E6%B0%B4%E7%BA%BF_\(%E8%AE%A1%E7%AE%97%E6%9C%BA\))方式执行任意流数据程序[\[3\]](https://zh.wikipedia.org/wiki/Apache_Flink#cite_note-3)，Flink的流水线运行时系统可以执行[批处理](https://zh.wikipedia.org/wiki/%E6%89%B9%E5%A4%84%E7%90%86%E4%BB%BB%E5%8A%A1)和流处理程序。[\[4\]](https://zh.wikipedia.org/wiki/Apache_Flink#cite_note-4)[\[5\]](https://zh.wikipedia.org/wiki/Apache_Flink#cite_note-5)此外，Flink的运行时本身也支持[迭代算法](https://zh.wikipedia.org/wiki/%E8%BF%AD%E4%BB%A3%E6%B3%95)的执行。[\[6\]](https://zh.wikipedia.org/wiki/Apache_Flink#cite_note-6)

Flink提供高吞吐量、低延迟的流数据引擎[\[7\]](https://zh.wikipedia.org/wiki/Apache_Flink#cite_note-7)以及对事件-时间处理和状态管理的支持。Flink应用程序在发生机器故障时具有容错能力，并且支持exactly-once语义。[\[8\]](https://zh.wikipedia.org/wiki/Apache_Flink#cite_note-:2-8)程序可以用Java、Scala[\[9\]](https://zh.wikipedia.org/wiki/Apache_Flink#cite_note-9)、[Python](https://zh.wikipedia.org/wiki/Python)[\[10\]](https://zh.wikipedia.org/wiki/Apache_Flink#cite_note-10)和[SQL](https://zh.wikipedia.org/wiki/SQL)[\[11\]](https://zh.wikipedia.org/wiki/Apache_Flink#cite_note-11)等语言编写，并自动编译和优化[\[12\]](https://zh.wikipedia.org/wiki/Apache_Flink#cite_note-12)到在集群或云环境中运行的数据流程序。[\[13\]](https://zh.wikipedia.org/wiki/Apache_Flink#cite_note-13)

Flink并不提供自己的数据存储系统，但为Amazon Kinesis、[Apache Kafka](https://zh.wikipedia.org/wiki/Apache_Kafka)、[HDFS](https://zh.wikipedia.org/wiki/HDFS)、[Apache Cassandra](https://zh.wikipedia.org/wiki/Apache_Cassandra)和ElasticSearch等系统提供了数据源和接收器。
