1、同時支持事件時間和處理時間語義。事件時間語義能夠針對無序事件提供精確、一致的結果;處理時間語義能夠用在具有極低延遲需求的應用中。
2、提供精確一次(exactly once)的狀態一致性保障。
3、層次化的API在表達能力和易用性方面各有權衡。表達能力由強到弱(易用性由弱到強)依次是:ProcessFunction、DataStream API、SQL/Table API。
Flink API提供了通用的流操作原語(如窗口划分和異步操作)以及精確控制時間和狀態的接口。

4、提供常見存儲系統的連接器,Kafka,Elasticsearch,JDBC
5、checkpoint和savepoint
6、支持高可用性配置(無單點失效),與k8s、Yarn、Apache Mesos緊密集成,快速故障恢復,動態擴縮容作業。
7、提供詳細、可自由定制的系統及應用指標(metrics)集合,用於提前定位和響應問題。
8、社區正在努力將Flink發展成為在API及運行時層面都能做到批流統一。
9、對開發者友好,Flink的嵌入式執行模式可將應用自身連同整個Flink系統在單個JVM進程內啟動,方便在IDE里運行和調試Flink作業
reference:
1 《Stream Processing with Apache Flink》
