2017-08-24 139 views
4

由於兩者都是一次處理事件的流式框架,這兩種技術/流式框架之間的核心架構差異是什麼?Apache Apex與Apache Flink

另外,哪一個比另一個更合適?

回答

3

正如你所提到的,兩者都是實時進行內存計算的流媒體平臺。但仔細觀察時會發現一些架構上的差異。

  1. 頂點紗機體系結構,它充分利用紗線調度,安全&多租戶其中作爲弗林克與紗線集成。 Apex可以在紗線運營商(集裝箱)層面進行資源分配。
  2. 分區:Apex支持多種複雜的流劃分方案,並且還允許控制操作員局部性&流局部性。 Flink支持簡單的哈希分區和自定義分區。
  3. Apex允許動態更改拓撲,而無需關閉應用程序。 Apex允許應用程序在運行時進行更新,以便您可以添加和刪除操作符,更新操作符的屬性或在運行時自動縮放應用程序。 Apache Flink不支持任何這些功能。
  4. 緩衝區服務器:運營商之間有一條稱爲緩衝服務器的消息總線。訂戶可以連接到緩衝服務器並從特定的偏移中獲取數據。這是窗口感知的,並且只要沒有用戶需要它就保存數據。
  5. 容錯:Apex有增量恢復模型,失敗時只能重新啓動拓撲的一部分,不需要返回源代碼,在flink中它返回源代碼。
  6. Apex擁有高級別的API和低級別的API。 Flink只有高級別的API。
  7. Apex有一個名爲Apache Malhar的庫,它擁有各種經過良好測試的連接器和處理操作員,可以輕鬆地重複使用。
  8. 最後,Apex更專注於大數據應用的產品化,因此有許多功能將有助於輕鬆開發和維護應用程序。

注:我的提交到Apache頂點,所以我聽起來偏置到頂點:)