6

由于两者都是一次处理事件的流式框架,这两种技术/流式框架之间的核心架构差异是什么?

此外,有哪些特定用例比另一种更合适?

4

1 回答 1

8

正如您所提到的,两者都是流媒体平台,可以实时进行内存计算。但是当你仔细观察时,会有一些架构上的差异。

  1. Apex 是纱线原生架构,它充分利用纱线进行调度、安全和多租户,而 Flink 与纱线集成。Apex 可以使用纱线在操作员(容器)级别进行资源分配。
  2. 分区:Apex 支持多种复杂的流分区方案,还允许控制操作员位置和流位置。Flink 支持简单的哈希分区和自定义分区。
  3. Apex 允许对拓扑进行动态更改,而无需关闭应用程序。Apex 允许在运行时更新应用程序,因此您可以添加和删除运算符、更新运算符的属性或在运行时自动扩展应用程序。Apache Flink 不支持任何这些功能。
  4. Buffer Server:运营商之间有一条消息总线叫做buffer server。订阅者可以连接到缓冲服务器并从特定偏移量获取数据。这是窗口感知的,只要没有订阅者需要,它就会保存数据。
  5. 容错性:Apex 有增量恢复模型,失败只能重启部分拓扑,无需回源,在 flink 中回源。
  6. Apex 有高级 api 和低级 api。Flink 只有高级 api。
  7. Apex 有一个名为 Apache Malhar 的库,其中包含大量经过良好测试的连接器和处理运算符,可以轻松重用。
  8. 最后,Apex 更专注于大数据应用程序的产品化,因此具有许多有助于轻松开发和维护应用程序的功能。

注意:我是 Apache Apex 的提交者,所以我听起来可能对 Apex 有偏见 :)

于 2017-08-29T07:21:21.923 回答