本文PPT来自技术专家毛玮于10月16日在2016年杭州云栖大会上发表的《分布式流处理框架--功能对比和性能评估》。
目前,分布式流处理框架数量不少,各有特色,究竟哪个性能更好、哪个效率更高、哪个更适合我呢?一般来说,当选择不同的流处理系统时,我们往往需要关注以下六大方面:1.运行时和编程模型2.函数式原语3.状态管理 4.消息传输保障 5.容错 6.性能。
其中,运行时模型主要包括原生的流处理和微批处理。流处理意味着所有输入的记录一旦到达即会一个接着一个进行处理,微批处理则把输入的数据按照某种预先定义的时间间隔分成短小的批量数据,流经流处理系统。编程模型一般分为组合式和声明式。组合式编程提供基本的构建模块,它们必须紧密结合来创建拓扑,相对应地,声明式API操作是定义的函数。
在下面的图中我们不仅会具体介绍每个要点,而且还会列出主流的框架,如Spark Streaming、Storm、Flink、Heron框架的性能对比测试结果数据。