1、flink 、spark streaming 、storm 的异同:
flink 架构和容错方面 和spark Straming storm 异同。
flink 和storm 、sparkstreaming 在处理模型延迟和数据保证时异同:
现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型:流处理一般需要支持低延迟、Exactly-once保证,而批处理需要支持高吞吐、高效处理。
而flink 在低延迟和数据顺序方面(利用水印)等都相对spark streaming 更具优势
2、flink 的事件驱动型应用
事件型应用是一类具有状态的应用,它从一个或多个事件流提取数据,并根据到来的事件去触发计算、状态更新或其它外部动作。
事件驱动型应用实在计算存储分离的传统应用基础上进化而来,在传统的架构中,应用需要读写远程事务型数据库。
相反,事件驱动型应用是基于状态化流处理来完成,在该设计中,数据和计算不会分离,应用只要访问本地(内存或磁盘)即可获取数据。系统容错性的实现依赖于定期向远程持久化存储写入checkpoint.下图是传统应用和事件驱动应用架构区别。
3、flink Exactly-once保证研究
参考:http://www.whitewood.me/2018/10/16/Flink-Exactly-Once-%E6%8A%95%E9%80%92%E5%AE%9E%E7%8E%B0%E6%B5%85%E6%9E%90/