Spring Cloud Data Flow 1.3 GA 釋出

釋出 | Gunnar Hillert | 2018 年 2 月 1 日 | ...

我代表團隊很高興宣佈 Spring Cloud Data Flow 1.3 已在多種平臺上正式釋出。

請參閱 本地伺服器Cloud FoundryKubernetes 的入門指南。

釋出亮點

流更新和回滾

流式資料管道作為一系列微服務應用進行編排,一直是 Spring Cloud Data Flow 設計的核心價值。在 Data Flow 1.3 中,我們提供了獨立更新源、處理器和匯的能力,而無需解除安裝和重新部署整個流。

流的更新和回滾功能是透過將部署過程委託給一個新的 Spring Cloud 專案 Skipper 來實現的。Skipper 是一個輕量級的 Spring Boot 應用,專門構建用於填補 Data Flow 在此功能上的空白。Skipper 定義了一種包格式,很像 helmbrew,也可以將應用部署/解除安裝到多個雲平臺:本地、Cloud Foundry 和 Kubernetes。它使用了自 Data Flow 誕生以來就一直是其一部分的 Spring Cloud Deployer 庫。在 SpringOne 2017 上的最新簡報 介紹了 Skipper 以及 與 Data Flow 的整合,提供了更深入的講解。

部署流時,Data Flow 會建立一個描述流及其組成應用的 Skipper 包。然後 Skipper 將應用部署到所需平臺。請求流更新時,只有需要更改的應用會自動重新部署。一個由 Spring Statemachine 例項管理的簡單策略執行更新或回滾步驟。

Data Flow 包含新的流命令,用於執行升級和回滾操作。

dataflow:>app register --name transform --type processor --uri maven://com.eg:transformer:0.0.1

dataflow:>stream create mystream --definition "jdbc | transform | mongodb"

dataflow:>app register --name transform --type processor --uri maven://com.eg:transformer:0.0.2

dataflow:>stream update mystream --properties “version.transform=0.0.2”

dataflow:>stream rollback mystream

在這一系列命令中,流使用了 0.0.1 版本的 transformer 進行部署。jdbcmongodb 源和匯已經註冊。然後流更新為使用 0.0.2 版本的 transformer。只有 transform 應用被更新,0.0.2 版本被部署,0.0.1 版本被解除安裝。jdbcmongodb 應用保持不變。回滾命令執行相反的操作,將流恢復到使用 0.0.1 版本 transformer 的狀態。

注意:要使用 Data Flow 和 Skipper,必須在 Data Flow Server 和 shell 中同時啟用 Data Flow 的 Skipper 功能開關

JavaDSL

DataFlowTemplate 類一直是程式化部署流和任務的主力。然而,它是一個相當底層的 API。我們添加了一個新的流暢風格 API 來建立、部署或啟動流,它更易於使用,並且可以在多個流之間複用 StreamApplication 例項。

StreamApplication source = new StreamApplication("http") .addProperty("server.port", 9900);

StreamApplication processor = new StreamApplication("filter") .addProperty("expression", "payload=='good'");

StreamApplication sink = new StreamApplication("log");

Stream simpleStream = streamBuilder.name("simpleStream") .source(source) .processor(processor) .sink(sink) .create() .deploy();

使用 Stream 例項,您可以查詢流的狀態、解除安裝或銷燬流。

參考指南的 Java DSL 部分 提供了對 DSL 更完整的介紹,Spring Data Flow Samples 倉庫提供了一個 示例,供您在專案中開始使用它。

Angular 4

Data Flow Dashboard 已更新,以利用 Angular 4 並與 Pivotal UI 樣式保持一致。一個主要關注點是持續使用領域模型類,而非直接的 JSON 字串。這使得可以對應用程式狀態進行更細粒度的控制,例如從分頁列表過渡到詳細資訊頁面再返回時。此外,還改進了使用 CompodocUI 文件

扇入和扇出視覺化

扇入(Fan-in)指多個源都將資料傳送到同一個訊息目的地。扇出(Fan-out)指在執行時確定訊息目的地。此影片展示了 UI 在具有這些拓撲結構的流中的實際應用。

新增了一個 UI 控制元件,可以直接從特定節點分支出去,用於 "tap 一個流",以及另一個新的 UI 控制元件,用於管理 命名目的地。這些新功能使得構建複雜的流拓撲結構更加容易。

應用註冊改進

將應用程式註冊為 Maven Artifact 的使用者現在可以利用“update-policy”功能來覆蓋並重新整理 Spring Cloud Data Flow 的內部 Maven 快取。例如,在開發中,您可以透過設定 update-policy=always 來持續解析 Maven Artifact 的 SNAPSHOT 版本,這將強制下載 DSL/Dashboard 中正在使用的流或批次/任務應用的最新版本。

根據使用者反饋,使用 http 資源註冊的應用將始終被下載而不進行快取。這有助於開發生命週期中更新託管在 Web 伺服器上的應用 uberjar 的程式碼(而非名稱)。

在 Skipper 模式下,可以註冊多個應用版本。部署流時使用預設版本。您可以使用新命令 app default 設定預設版本。然而,在流中升級應用版本時,必須先在 Data Flow 中註冊該版本。

Shell 改進

此版本為流和任務/批次處理名稱以及其他元資料添加了“自動補全”功能。無需猜測 - 只需按 TAB 鍵即可獲得一切!檢視以下 螢幕錄影,瞭解更多關於高階 shell 功能、技巧和竅門的資訊。

函式執行器

透過使用 function-runner 應用,SCDF 提供了對執行函式的初步支援。使用 Spring Cloud Function 應用建立流時,您需要傳入函式的類名和 jar 位置。

dataflow:> stream create foo --definition "http | function-runner --function.className=com.example.functions.CharCounter --function.location=file:///home/john/myfunction.jar | log"

您可以使用一個示例來試驗此功能。我們的路線圖上包括透過不要求使用者顯式呼叫 function-runner 來簡化 Spring Cloud Functions 的部署。

應用

MQTT sourceMQTT sink 應用可以與 IoT 裝置互動。

TensorFlow 處理器 可以幫助進行即時預測模型評估。請檢視其 Twitter 情感分析 模型預測用法,以瞭解其作用。

在資料科學能力的基礎上,Python-HTTP 和 Python-Jython 處理器現已可用。

新的 bit.ly 連結 Celsius.SR1Clark.GA 可用於批次匯入和註冊 SCDF 中所有開箱即用的應用。

透過不要求使用者顯式呼叫 function-runner 來簡化 Spring Cloud Functions 的部署,這已列入我們的路線圖。

Spring Cloud Data Flow 的 PCF Tile

Spring Cloud Data Flow 的 Cloud Foundry Tile 在過去幾個月一直處於封閉測試(closed-BETA)狀態。我們根據客戶和現場反饋進行了迭代,現已正式從 BETA 階段畢業,達到 1.0 GA 狀態。此版本自動化了配置過程(包括 metrics-collector、skipper、資料庫和訊息代理),並實現了 Cloud Foundry 中的端到端 OAuth/SSO 整合。還有許多其他增值功能,敬請關注更深入的討論、文件以及 Pivotal Network 中 Tile 頁面的指引。

Kubernetes 的 Helm Chart

一旦 Pull Request 被合併Spring Cloud Data Flow 的 Helm Chart 將更新到最新的 1.3 GA 版本。使用此 Chart,可以利用以下 Helm 命令自動配置最新版本的 SCDF 以及配套元件(metrics-collector、skipper、資料庫和訊息代理)。

helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator helm repo update helm install --name scdf incubator/spring-cloud-data-flow --set rbac.create=tru

一如既往,我們歡迎反饋和貢獻,請透過 StackoverflowGitHubGitter 與我們聯絡。

請嘗試使用它,分享您的反饋,並考慮為專案做出貢獻!

訂閱 Spring 新聞通訊

保持與 Spring 新聞通訊的連線

訂閱

保持領先

VMware 提供培訓和認證,助您加速前進。

瞭解更多

獲取支援

Tanzu Spring 在一項簡單的訂閱中提供對 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案。

瞭解更多

近期活動

檢視 Spring 社群的所有近期活動。

檢視全部