正如您所提到的,两者都是流平台,用于内存实时计算。但是,当您仔细观察时,会发现一些体系结构上的差异。
- 先端是纱线的原生结构,它充分利用纱线的调度、安全和多租赁功能,使Flink与纱线集成。顶点可以在操作员(集装箱)水平与纱线进行资源分配。
- 分区:顶点支持几种复杂的流分区方案,并且还允许控制操作符的位置&流局部性。Flink支持简单的散列分区和自定义分区。
- 允许动态改变拓扑结构,而不需要删除应用程序。允许在运行时更新应用程序,因此可以添加和删除运算符、更新运算符的属性或在运行时自动缩放应用程序。Apache不支持任何这些功能。
- 缓冲器服务器:在操作员之间有一个名为缓冲区服务器的消息总线。订阅服务器可以连接到缓冲区服务器,并从特定的偏移量中获取数据。这是窗口感知的,并且在没有订阅者需要的情况下保存数据。
- 容错:先端有增量恢复模型,故障时只能重新启动部分拓扑,无需返回源,在flink中返回源。
- 顶点具有高api和低api。Flink只具有高级api。
- Apex有一个名为Apache的库,它拥有各种各样经过良好测试的连接器和处理操作符,可以很容易地重用。
- 最后,Apex更侧重于生产大数据应用程序,因此具有许多特性,这将有助于应用程序的轻松开发和维护。
注意:我是Apache Apex的提交者,所以我听起来可能对Apex有偏见:)