欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring Cloud Data Flow初體驗(yàn)以Local模式運(yùn)行

 更新時(shí)間:2020年08月03日 09:21:06   作者:南瓜慢說(shuō)  
這篇文章主要介紹了Spring Cloud Data Flow初體驗(yàn)以Local模式運(yùn)行,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1 前言

Spring Cloud Data Flow是什么,雖然已經(jīng)出現(xiàn)一段時(shí)間了,但想必很多人不知道,因?yàn)樵陧?xiàng)目中很少有人用。不僅找不到很多中文資料,英文資料也一樣少的可憐。這讓探索的路更加艱辛,也更加有趣吧。

Spring Cloud Data Flow是基于微服務(wù)的,專門用于流式和批式數(shù)據(jù)處理的框架。

2 基本概念

2.1 數(shù)據(jù)處理模式

數(shù)據(jù)處理有兩種模式,分別是Streaming流式處理Batch批次處理Streaming是長(zhǎng)時(shí)間一直存在的,你數(shù)據(jù)來(lái)了我就處理,沒(méi)來(lái)我就等著,基于消息驅(qū)動(dòng)。Batch是處理時(shí)間較短的,啟動(dòng)一次處理一次,處理完就退出任務(wù),需要去觸發(fā)任務(wù)。

一般地,我們會(huì)基于Spring Cloud Stream框架來(lái)開(kāi)發(fā)Streaming應(yīng)用,而基于Spring Cloud TaskSpring Batch框架來(lái)開(kāi)發(fā)Batch應(yīng)用。完成開(kāi)發(fā)后,可以打包成兩種形式:

  • (1)Springboot式的jar包,可以放在maven倉(cāng)庫(kù)、文件目錄或HTTP服務(wù)上;
  • (2)Docker鏡像。

對(duì)于Stream,有三個(gè)概念是需要理解的:

  • (1)Source:消息生產(chǎn)者,負(fù)責(zé)把消息發(fā)送到某個(gè)目標(biāo);
  • (2)Sink:消息消費(fèi)者,負(fù)責(zé)從某個(gè)目標(biāo)讀取消息;
  • (3)Processor:聯(lián)合SourceSink,它從某個(gè)目標(biāo)消費(fèi)消息,然后發(fā)送到另一個(gè)目標(biāo)。

2.2 特性

Spring Cloud Data Flow有許多好的特性值得我們學(xué)去使用它:

  • 基于云的架構(gòu),可部署在Cloud Foundry、KubernetesOpenShift等。
  • 有許多可選擇的開(kāi)箱即用的流處理和批處理應(yīng)用組件。
  • 可自定義應(yīng)用組件,且是基于Springboot風(fēng)格的編程模型。
  • 有簡(jiǎn)單靈活的DSL(Domain Specific Language)去定義任務(wù)處理邏輯。
  • 有美觀的Dashboard能可視化地定義處理邏輯、管理應(yīng)用、管理任務(wù)等。
  • 提供了REST API,可以在shell命令行模式下進(jìn)行交互。

2.3 服務(wù)端組件

服務(wù)端有兩個(gè)重要的組件:Data Flow ServerSkipper Server。兩者作用不同,互相協(xié)作。

Data Flow Server的主要作用有:

  • 解析DSL;校驗(yàn)和持久化StreamTaskBatch的定義;
  • 注冊(cè)應(yīng)用如jar包應(yīng)用和docker應(yīng)用;
  • 部署Batch到一個(gè)或多個(gè)平臺(tái);
  • 查詢JobBatch的歷史執(zhí)行記錄;
  • Stream的配置管理;
  • 分發(fā)Stream部署到Skipper
  • Skipper Server主要作用有:
  • 部署Stream到一個(gè)或多個(gè)平臺(tái);
  • 基于有灰度/綠色更新策略地更新或回滾Stream
  • 保存每一個(gè)Stream的描述信息。

可以看出,如果不需要使用Stream,可以不用部署Skipper。兩者都需要依賴關(guān)系型數(shù)據(jù)庫(kù)(RDBMS),默認(rèn)會(huì)使用內(nèi)置的H2,支持的數(shù)據(jù)庫(kù)有H2HSQLDB、MYSQL、Oracle、PostgreSql、DB2SqlServer。

2.4 運(yùn)行環(huán)境

優(yōu)秀的Spring的解耦能力總是特別強(qiáng),Server和應(yīng)用可以運(yùn)行在不同的平臺(tái)。我們可以把Data Flow ServerSkipper Server部署在Local、Cloud FoundryKuernetes,而Server又可以把應(yīng)用部署在不同的平臺(tái)。

  • 服務(wù)端Local:應(yīng)用Local/Cloud Foundry/Kuernetes;
  • 服務(wù)端Cloud Foundry:應(yīng)用Cloud Foundry/Kuernetes;
  • 服務(wù)端Kuernetes:應(yīng)用Cloud Foundry/Kuernetes。

一般情況下,我們會(huì)把Server和應(yīng)用部署在同一平臺(tái)上。對(duì)于生產(chǎn)環(huán)境,建議還是在Kuernetes上比較合適。

3 本地模式安裝使用

為了快速體驗(yàn),我們使用最簡(jiǎn)單的本地運(yùn)行環(huán)境。

3.1 下載Jar包

下載以下三個(gè)jar包:

wget https://repo.spring.io/release/org/springframework/cloud/spring-cloud-dataflow-server/2.5.3.RELEASE/spring-cloud-dataflow-server-2.5.3.RELEASE.jar
wget https://repo.spring.io/release/org/springframework/cloud/spring-cloud-dataflow-shell/2.5.3.RELEASE/spring-cloud-dataflow-shell-2.5.3.RELEASE.jar
wget https://repo.spring.io/release/org/springframework/cloud/spring-cloud-skipper-server/2.4.3.RELEASE/spring-cloud-skipper-server-2.4.3.RELEASE.jar

如果是簡(jiǎn)單的Batch應(yīng)用,可以只下載spring-cloud-dataflow-server-2.5.3.RELEASE.jar

3.2 啟動(dòng)應(yīng)用

# 啟動(dòng)Skipper,默認(rèn)端口為7577
java -jar spring-cloud-skipper-server-2.4.3.RELEASE.jar
# 啟動(dòng)Data Flow Server,默認(rèn)端口為9393
java -jar spring-cloud-dataflow-server-2.5.3.RELEASE.jar

啟動(dòng)完成后,訪問(wèn)UI:http://localhost:9393/dashboard

3.3 部署應(yīng)用

3.3.1 添加應(yīng)用Applications

只有添加了應(yīng)用,才能部署BatchStream。官方提供了示例Applications,我們直接使用就可以了:

添加成功后,在應(yīng)用列表可以查看:

3.3.2 創(chuàng)建Task

創(chuàng)建Task可以圖形化創(chuàng)建,也可以通過(guò)DSL來(lái)創(chuàng)建,非常方便:

定義好Task后,輸入名字創(chuàng)建:

3.3.3 運(yùn)行Task

直接點(diǎn)擊運(yùn)行:

可以傳入?yún)?shù):

3.3.4 查看Task運(yùn)行情況

可以查看運(yùn)行日志:

3.4 Data Flow Shell命令行

除了在網(wǎng)頁(yè)上,還可以通過(guò)命令行模式來(lái)與Server進(jìn)行交互。

啟動(dòng)應(yīng)用:

$ java -jar spring-cloud-dataflow-shell-2.5.3.RELEASE.jar 
 ____    ____ _  __
 / ___| _ __ _ __(_)_ __ __ _ / ___| | ___ _ _ __| |
 \___ \| '_ \| '__| | '_ \ / _` | | | | |/ _ \| | | |/ _` |
 ___) | |_) | | | | | | | (_| | | |___| | (_) | |_| | (_| |
 |____/| .__/|_| |_|_| |_|\__, | \____|_|\___/ \__,_|\__,_|
 ____ |_| _  __|___/   __________
 | _ \ __ _| |_ __ _ | ___| | _____ __ \ \ \ \ \ \
 | | | |/ _` | __/ _` | | |_ | |/ _ \ \ /\ / / \ \ \ \ \ \
 | |_| | (_| | || (_| | | _| | | (_) \ V V / / / / / / /
 |____/ \__,_|\__\__,_| |_| |_|\___/ \_/\_/ /_/_/_/_/_/

2.5.3.RELEASE

Welcome to the Spring Cloud Data Flow shell. For assistance hit TAB or type "help".
Successfully targeted http://localhost:9393/

dataflow:>app list
╔═══╤══════╤═════════╤════╤════════════════════╗
║app│source│processor│sink│ task ║
╠═══╪══════╪═════════╪════╪════════════════════╣
║ │ │  │ │composed-task-runner║
║ │ │  │ │timestamp-batch ║
║ │ │  │ │timestamp  ║
╚═══╧══════╧═════════╧════╧════════════════════╝

dataflow:>

4 總結(jié)

本文使用的是官方提供的應(yīng)用,我們可以自己開(kāi)發(fā)應(yīng)用并注冊(cè)到Server上。Local模式適合開(kāi)發(fā)環(huán)境適合,生產(chǎn)環(huán)境還是部署在Kubernetes比較靠譜。后面我們?cè)賮?lái)探索吧。

到此這篇關(guān)于Spring Cloud Data Flow初體驗(yàn)以Local模式運(yùn)行的文章就介紹到這了,更多相關(guān)Spring Cloud Data Flow初體驗(yàn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring?Boot+RabbitMQ?通過(guò)fanout模式實(shí)現(xiàn)消息接收功能(支持消費(fèi)者多實(shí)例部署)

    Spring?Boot+RabbitMQ?通過(guò)fanout模式實(shí)現(xiàn)消息接收功能(支持消費(fèi)者多實(shí)例部署)

    這篇文章主要介紹了Spring?Boot+RabbitMQ?通過(guò)fanout模式實(shí)現(xiàn)消息接收(支持消費(fèi)者多實(shí)例部署),本文通過(guò)案例場(chǎng)景分析給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • java多線程教程之如何使用線程池詳解

    java多線程教程之如何使用線程池詳解

    這篇文章主要給大家介紹了關(guān)于java多線程之如何使用線程池的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • java中的日期和時(shí)間比較大小

    java中的日期和時(shí)間比較大小

    這篇文章主要介紹了java中的日期和時(shí)間比較大小,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 詳解Java線程的創(chuàng)建及休眠

    詳解Java線程的創(chuàng)建及休眠

    今天帶大家學(xué)習(xí)的是Java的相關(guān)知識(shí),文章圍繞著Java線程的創(chuàng)建及休眠展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Java實(shí)現(xiàn)調(diào)用外部程序的示例代碼

    Java實(shí)現(xiàn)調(diào)用外部程序的示例代碼

    本文主要介紹了Java實(shí)現(xiàn)調(diào)用外部程序的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 詳解IDEA自定義注釋模板(javadoc)

    詳解IDEA自定義注釋模板(javadoc)

    這篇文章主要介紹了詳解IDEA自定義注釋模板(javadoc),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Java通過(guò)經(jīng)緯度坐標(biāo)獲取兩個(gè)點(diǎn)之間的直線距離的示例

    Java通過(guò)經(jīng)緯度坐標(biāo)獲取兩個(gè)點(diǎn)之間的直線距離的示例

    這篇文章主要介紹了Java通過(guò)經(jīng)緯度坐標(biāo)獲取兩個(gè)點(diǎn)之間的直線距離的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(21)

    Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(21)

    下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你
    2021-07-07
  • Spring容器中添加bean的5種方式

    Spring容器中添加bean的5種方式

    我們知道平時(shí)在開(kāi)發(fā)中使用Spring的時(shí)候,都是將對(duì)象交由Spring去管理,那么將一個(gè)對(duì)象加入到Spring容器中,有哪些方式呢,感興趣的可以了解一下
    2021-07-07
  • 通過(guò)Class類獲取對(duì)象(實(shí)例講解)

    通過(guò)Class類獲取對(duì)象(實(shí)例講解)

    下面小編就為大家?guī)?lái)一篇通過(guò)Class類獲取對(duì)象(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06

最新評(píng)論