Flink和Spark Streaming相比,前者是真正的流式计算,而后者是微批处理,虽然批次足够小,但其本质毕竟还是批处理,这就导致有些场景SparkStreaming注定无法满足,虽然Spark现在将重心转移到了Structured Streaming,它弥补了Spark Streaming很多的不足,但是在处理流程上仍然是微批处理。而Flink在设计之初就同时考虑了批处理和流处理这两种需求,所以使用者也可以只通过一个计算引擎,就能实现批处理和流处理两种计算场景,其主要几个需要清楚的特性我觉得分别是:State状态管理,CheckPoint容错机制,Window滑动窗口,和Watermark乱序解决。