javascript
Spring Cloud Data Flow简介
文章目錄
- Spring Cloud Data Flow簡介
- Spring Cloud Data Flow介紹
- Server Components
- Application Types
- Long-lived Applications
- Streams with Sources, Processors and Sinks
- Short-lived Applications
- 參考
Spring Cloud Data Flow簡介
Spring Cloud Data Flow介紹
- Spring Cloud Data Flow是用于構建數據集成和實時數據處理管道的工具包
- Data flow 是一個用于開發和執行大數據處理,其模式包括ETL(Extract-Transform-Load),批量運算和持續運算的統一編程模型和托管服務
- 對于在現代運行環境中可組合的微服務程序來說,spring cloud data flow是一個原生云可編配的服務
- 使用spring cloud data flow,開發者可以為像數據抽取,實時分析,和數據導入/導出這種常見用例創建和編配數據通道 (data pipelines)。
- Spring cloud data flow 是基于原生云對 spring XD的重新設計,該項目目標是簡化大數據應用的開發。
- Spring cloud data flow 為基于微服務的分布式流處理和批處理數據通道提供了一系列模型和最佳實踐。
- Spring cloud data flow 簡化了應用程序的開發和部署, 將精力集中到數據處理的用例上
Server Components
Data Flow 包含了兩個主要的components:
- Data Flow Server
- Skipper Server
Data Flow Server使用一個嵌入式的servlet容器并且暴露REST端去創建,部署,卸載,銷毀Streams和Tasks,查詢運行狀態,數據分析等等。
Skipper Server是可以將Stream部署到一個或多個平臺,提供了版本升級/回退的方法,Data Flow Server會將Stream的部署委托給skipper。
這些服務器可以運行在幾個平臺上:Cloud Foundry、Kubernetes或您的本地機器上。每個服務器將其狀態存儲在關系數據庫中。
參考:https://dataflow.spring.io/docs/concepts/architecture/#server-components
Application Types
應用程序以兩種類型出現:
- Long-lived applications(Message-driven applications/Spring Cloud Stream):周期長的流處理,程序通過消息中間件消費和產生連續不斷的數據
- Short-lived applications(Spring Cloud Task/Spring Batch):短周期的任務處理,程序處理有限的數據集合然后中斷
參考:https://dataflow.spring.io/docs/concepts/architecture/#application-types
Long-lived Applications
Long-lived applications應該持續運行,Data Flow平臺會對applications并進行健康檢查確保長周期運行,并在運行失敗的時候可以重新啟動。
Spring Cloud Stream框架可以幫助我們更加容易得創建基于微服務的流處理程序。我們只需要編寫我們自己的核心業務邏輯而無須理會特定的中間件。
如果要使用特定的中間件,只需要通過添加一個Spring Cloud Stream Binder library作為applications的依賴項。下面是已有的中間件binding libraries:
- RabbitMQ
- Kafka
- Kafka Streams
- Amazon Kinesis
- Google Pub/Sub
- Solace PubSub+
- Azure Event Hubs
參考:https://dataflow.spring.io/docs/concepts/architecture/#long-lived-applications
Streams with Sources, Processors and Sinks
- Source: 將Message發送到目的地的producer.(生成數據)
- Sink: 從目標讀取Message的consumer.(消費數據)
- Processor: Processor使用來自目的地的消息并生成要發送到另一個目的地的消息.(消費和生產數據)
通過使用Source、Processor和Sink來描述被注冊的application的類型,這三種類型的application被注冊到Data Flow中。我們可以通過--type來指定這三種類型,如下:
dataflow:>app register --name http --type source --uri maven://org.springframework.cloud.stream.app:http-source-rabbit:1.2.0.RELEASE Successfully registered application 'source:http'dataflow:>app register --name log --type sink --uri maven://org.springframework.cloud.stream.app:log-sink-rabbit:1.1.0.RELEASE Successfully registered application 'sink:log'上面的命令的意思如下:
- 第一條命令:注冊name為http的application,并指定type為source到data flow中,并指定了獲取application的uri
- 第二條命令:注冊name為log的application,并指定type為sink到data flow中,并指定了獲取application的uri
通過在Data Flow中注冊http和log,可以使用Stream Pipeline DSL創建一個stream, Stream DSL 描述了系統中數據流轉送的線性序列, 如下面的示例所示:
dataflow:>stream create --name httpStream --definition "http | log"參考:https://dataflow.spring.io/docs/concepts/architecture/#streams-with-sources-processors-and-sinks
Short-lived Applications
Short-lived Applications一般是運行一段時間(通常是幾分鐘到幾小時),然后終止。比如每天需要在一段時間內把FTP服務器的壓縮包文件下載下來->然后解壓縮->讀取里面的數據->進行持久化存儲。這樣一個流程每天可能只需要進行一次,但是我們不希望有一個application長期的運行只為了可能每天幾分鐘到幾小時的處理或者計算的時間。所以短生命周期的微服務可以幫我們做到這一點。
Spring Cloud Task允許我們開發短生命周期的微服務,它記錄短生命周期應用程序的生命周期事件(如開始時間、結束時間和退出代碼)。結合Spring Batch能提供更多豐富的功能。
可以通過--type task來指定application是一個短期運行的task
dataflow:> app register --name timestamp --type task --uri maven://org.springframework.cloud.task.app:timestamp-task:2.1.0.RELEASE通過上面的命令我們可以把我們的application 注冊到DataFlow中
然后我們用下面的命令來創建一個task
dataflow:> task create tsTask --definition "timestamp"參考:https://dataflow.spring.io/docs/concepts/architecture/#short-lived-applications
參考
Spring Cloud Data Flow 介紹
Spring Cloud Data Flow Architecture
ETL with Spring Cloud Data Flow
Spring 數據處理框架的演變
Spring系列學習之Spring Cloud Data Flow 微服務數據流
Spring Cloud Data Flow初探
使用Spring Cloud Data Flow實現批量數據處理ETL
Introduction to Spring cloud data flow in 15 minutes
Spring Cloud Data Flow | Microservice Stream Processing |JavaTechie
Spring Tips: Spring Cloud Data Flow
Orchestrating Data Microservices with Spring Cloud Data Flow - Mark Pollack
Spring Cloud Data Flow Reference Guide(current-SNAPSHOT)
Spring Cloud Data Flow Reference Guide
Java-Techie-jt/spring-cloud-data-flow-example
mminella/spring-cloud-task-webinar
spring-cloud/spring-cloud-dataflow-samples
用Spring Cloud和異步微服務進行無服務器計算
總結
以上是生活随笔為你收集整理的Spring Cloud Data Flow简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win7 设置共享无线网络
- 下一篇: esri/dijit/andlysis/