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是用于構(gòu)建數(shù)據(jù)集成和實(shí)時數(shù)據(jù)處理管道的工具包
- Data flow 是一個用于開發(fā)和執(zhí)行大數(shù)據(jù)處理,其模式包括ETL(Extract-Transform-Load),批量運(yùn)算和持續(xù)運(yùn)算的統(tǒng)一編程模型和托管服務(wù)
- 對于在現(xiàn)代運(yùn)行環(huán)境中可組合的微服務(wù)程序來說,spring cloud data flow是一個原生云可編配的服務(wù)
- 使用spring cloud data flow,開發(fā)者可以為像數(shù)據(jù)抽取,實(shí)時分析,和數(shù)據(jù)導(dǎo)入/導(dǎo)出這種常見用例創(chuàng)建和編配數(shù)據(jù)通道 (data pipelines)。
- Spring cloud data flow 是基于原生云對 spring XD的重新設(shè)計(jì),該項(xiàng)目目標(biāo)是簡化大數(shù)據(jù)應(yīng)用的開發(fā)。
- Spring cloud data flow 為基于微服務(wù)的分布式流處理和批處理數(shù)據(jù)通道提供了一系列模型和最佳實(shí)踐。
- Spring cloud data flow 簡化了應(yīng)用程序的開發(fā)和部署, 將精力集中到數(shù)據(jù)處理的用例上
Server Components
Data Flow 包含了兩個主要的components:
- Data Flow Server
- Skipper Server
Data Flow Server使用一個嵌入式的servlet容器并且暴露REST端去創(chuàng)建,部署,卸載,銷毀Streams和Tasks,查詢運(yùn)行狀態(tài),數(shù)據(jù)分析等等。
Skipper Server是可以將Stream部署到一個或多個平臺,提供了版本升級/回退的方法,Data Flow Server會將Stream的部署委托給skipper。
這些服務(wù)器可以運(yùn)行在幾個平臺上:Cloud Foundry、Kubernetes或您的本地機(jī)器上。每個服務(wù)器將其狀態(tài)存儲在關(guān)系數(shù)據(jù)庫中。
參考:https://dataflow.spring.io/docs/concepts/architecture/#server-components
Application Types
應(yīng)用程序以兩種類型出現(xiàn):
- Long-lived applications(Message-driven applications/Spring Cloud Stream):周期長的流處理,程序通過消息中間件消費(fèi)和產(chǎn)生連續(xù)不斷的數(shù)據(jù)
- Short-lived applications(Spring Cloud Task/Spring Batch):短周期的任務(wù)處理,程序處理有限的數(shù)據(jù)集合然后中斷
參考:https://dataflow.spring.io/docs/concepts/architecture/#application-types
Long-lived Applications
Long-lived applications應(yīng)該持續(xù)運(yùn)行,Data Flow平臺會對applications并進(jìn)行健康檢查確保長周期運(yùn)行,并在運(yùn)行失敗的時候可以重新啟動。
Spring Cloud Stream框架可以幫助我們更加容易得創(chuàng)建基于微服務(wù)的流處理程序。我們只需要編寫我們自己的核心業(yè)務(wù)邏輯而無須理會特定的中間件。
如果要使用特定的中間件,只需要通過添加一個Spring Cloud Stream Binder library作為applications的依賴項(xiàng)。下面是已有的中間件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發(fā)送到目的地的producer.(生成數(shù)據(jù))
- Sink: 從目標(biāo)讀取Message的consumer.(消費(fèi)數(shù)據(jù))
- Processor: Processor使用來自目的地的消息并生成要發(fā)送到另一個目的地的消息.(消費(fèi)和生產(chǎn)數(shù)據(jù))
通過使用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創(chuàng)建一個stream, Stream DSL 描述了系統(tǒng)中數(shù)據(jù)流轉(zhuǎn)送的線性序列, 如下面的示例所示:
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一般是運(yùn)行一段時間(通常是幾分鐘到幾小時),然后終止。比如每天需要在一段時間內(nèi)把FTP服務(wù)器的壓縮包文件下載下來->然后解壓縮->讀取里面的數(shù)據(jù)->進(jìn)行持久化存儲。這樣一個流程每天可能只需要進(jìn)行一次,但是我們不希望有一個application長期的運(yùn)行只為了可能每天幾分鐘到幾小時的處理或者計(jì)算的時間。所以短生命周期的微服務(wù)可以幫我們做到這一點(diǎn)。
Spring Cloud Task允許我們開發(fā)短生命周期的微服務(wù),它記錄短生命周期應(yīng)用程序的生命周期事件(如開始時間、結(jié)束時間和退出代碼)。結(jié)合Spring Batch能提供更多豐富的功能。
可以通過--type task來指定application是一個短期運(yùn)行的task
dataflow:> app register --name timestamp --type task --uri maven://org.springframework.cloud.task.app:timestamp-task:2.1.0.RELEASE通過上面的命令我們可以把我們的application 注冊到DataFlow中
然后我們用下面的命令來創(chuàng)建一個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 數(shù)據(jù)處理框架的演變
Spring系列學(xué)習(xí)之Spring Cloud Data Flow 微服務(wù)數(shù)據(jù)流
Spring Cloud Data Flow初探
使用Spring Cloud Data Flow實(shí)現(xiàn)批量數(shù)據(jù)處理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和異步微服務(wù)進(jìn)行無服務(wù)器計(jì)算
總結(jié)
以上是生活随笔為你收集整理的Spring Cloud Data Flow简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win7 设置共享无线网络
- 下一篇: esri/dijit/andlysis/