簡體   English   中英

Spring Cloud Dataflow 與 Apache Beam/GCP 數據流說明

[英]Spring Cloud Dataflow vs Apache Beam/GCP Dataflow Clarification

我很難理解 GCP Dataflow/Apache Beam 和 Spring Cloud Dataflow 之間的區別。 我想做的是轉向一個更加雲原生的流數據處理解決方案,這樣我們的開發人員就可以更多地專注於開發核心邏輯,而不是管理基礎設施。

我們有一個現有的流解決方案,它由我們可以獨立迭代和部署的 spring 雲數據流“模塊”組成,就像微服務一樣,效果很好,但我們希望遷移到我們的業務提供的 GCP 中的現有平台,這需要我們使用 GCP Dataflow。 在高層次上,解決方案很簡單:

流 1:

Kafka Source (S0) -> Module A1 (Ingest) -> Module B1 (Map) -> Module C1 (Enrich) -> Module D1 (Split) -> Module E1 (Send output to Sink S1)

流 2:

Kafka Source (S1) -> Module A2 (Ingest) -> Module B2 (Persist to DB) -> Module B3 (Send Notifications through various channels)

根據我的理解,我們想要轉向的解決方案應該是相同的,但是模塊將成為 GCP 數據流模塊,源/接收器將成為 GCP Pub/Sub 而不是 kafka。

我遇到的大多數文檔都沒有將 SCDF 和 Apache Beam(GCP 數據流模塊)作為類似的解決方案進行比較,所以我想知道如何/是否有可能將我們現有的邏輯移植到這樣的架構中。

任何澄清將不勝感激。 提前致謝。

我想為@guillaume-blaquiere 的回復添加 +1:“重寫代碼”。 讓我也為這個主題添加更多色彩。

民防部隊概況:

Spring Cloud Data Flow (SCDF) 的核心只是一個 RESTful 服務,甚至是一個輕量級的 Spring Boot 應用程序。 就這樣。 它不需要運行時來運行; Boot App 可以在任何有 Java 的地方運行,包括在您的筆記本電腦或任何容器平台(k8s、cf、nomad 等)、任何雲(aws、gcp、azure 等)上。

SCDF (Boot App / Über-jar) 附帶儀表板、Shell/CLI 和 API,因此開發人員和運維人員可以使用它們來設計和部署流式或批處理數據管道。

SCDF 中的數據管道由Spring Cloud StreamSpring Cloud Task應用程序組成。 由於這些是獨立且自治的微服務應用程序,用戶可以單獨修補或滾動升級單個應用程序,而不會影響數據管道中的上游或下游應用程序——有關架構的更多詳細信息,請參見此處

SCDF 與 GCDF:

Spring Cloud Stream 和 Spring Cloud Task 大致相當於 Apache Beam。 這些是 SDK/庫。

另一方面,SCDF 與 Google Cloud Dataflow (GCDF) 中的數據管道有一些相似之處,但 GCDF 中的模塊預計將使用 Apache Beam 構建。 換句話說,您不能將在 SCDF 中運行的 Spring Boot 流式處理/批處理微服務作為模塊運行到 GCDF - 您將不得不使用 Apache Beam API 重寫它們。 SCDF 和 GCDF 基金會都直接依賴於上述各自的框架及其功能。

另一個需要強調的重要區別是運行 Apache Beam 模塊所需的運行時組件。 在 GCDF 中,所有運行時/運行器期望對用戶都是隱藏的,因為它由 GCP 管理。 然而,在 SCDF 中,要以高度可擴展的方式運行它,您需要選擇您選擇的平台。 SCDF 在平台上作為原生容器應用程序運行。

GKE/GCP 上的 SCDF:

您可以在 GCP 上配置一個 GKE 集群,並使用 SCDF 的Helm Chart在 Kubernetes 中本地運行 SCDF 和您當前的流/批處理 (Spring Boot) 應用程序作為 GCP 上的托管服務。

首先澄清一下: Spring Cloud Data Flow與 GCP Dataflow 完全不同。

Spring Cloud Data Flow 與 Apache Beam 相當。 都有描述數據轉換的框架,如 ETL。

GCP Dataflow 是托管在 GCP 上的可自動擴展和托管的平台。 它接受 Apache Beam Framework 描述的處理流程。 GCP Dataflow 負責運行管道,根據管道要求生成 VM 的數量,將流分派給這些 VM,...

Apache Beam 是一個具有許多連接器的開源項目。 GCP 上有很多(因為它最初是開源的 Google 產品),還有其他連接器,如kafka io 連接器

Beam 還集成了不同的運行器:DirectRunner 用於在當前機器上啟動管道,DataflowRunner 用於在 GCP Dataflow 上運行它,SparkRunner 用於在 Hadoop Spark 集群上運行它,......

這是一個很好的解決方案,但與 Spring Cloud Data Flow 沒有任何直接關系、合規性和可移植性。 您必須重寫代碼才能從一個傳遞到另一個。

希望這有助於您的理解

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM