内容简介:数据处理有两种模式,分别是
1 前言
Spring Cloud Data Flow 是什么,虽然已经出现一段时间了,但想必很多人不知道,因为在项目中很少有人用。不仅找不到很多中文资料,英文资料也一样少的可怜。这让探索的路更加艰辛,也更加有趣吧。
Spring Cloud Data Flow 是基于微服务的,专门用于流式和批式数据处理的框架。
2 基本概念
2.1 数据处理模式
数据处理有两种模式,分别是 Streaming流式处理 和 Batch批次处理 。 Streaming 是长时间一直存在的,你数据来了我就处理,没来我就等着,基于消息驱动。 Batch 是处理时间较短的,启动一次处理一次,处理完就退出任务,需要去触发任务。
一般地,我们会基于 Spring Cloud Stream 框架来开发 Streaming 应用,而基于 Spring Cloud Task 或 Spring Batch 框架来开发 Batch 应用。完成开发后,可以打包成两种形式:
- (1)
Springboot式的jar包,可以放在maven仓库、文件目录或HTTP服务上; - (2)
Docker镜像。
对于 Stream ,有三个概念是需要理解的:
- (1)
Source:消息生产者,负责把消息发送到某个目标; - (2)
Sink:消息消费者,负责从某个目标读取消息; - (3)
Processor:联合Source和Sink,它从某个目标消费消息,然后发送到另一个目标。
2.2 特性
Spring Cloud Data Flow 有许多好的特性值得我们学去使用它:
-
基于云的架构,可部署在
Cloud Foundry、Kubernetes或OpenShift等。 -
有许多可选择的开箱即用的流处理和批处理应用组件。
-
可自定义应用组件,且是基于
Springboot风格的编程模型。 -
有简单灵活的
DSL(Domain Specific Language)去定义任务处理逻辑。 -
有美观的
Dashboard能可视化地定义处理逻辑、管理应用、管理任务等。 -
提供了
REST API,可以在shell命令行模式下进行交互。
2.3 服务端组件
服务端有两个重要的组件: Data Flow Server 和 Skipper Server 。两者作用不同,互相协作。
Data Flow Server 的主要作用有:
- 解析
DSL; - 校验和持久化
Stream、Task和Batch的定义; - 注册应用如
jar包应用和docker应用; - 部署
Batch到一个或多个平台; - 查询
Job和Batch的历史执行记录; -
Stream的配置管理; - 分发
Stream部署到Skipper。
Skipper Server 主要作用有:
Stream Stream Stream
可以看出,如果不需要使用 Stream ,可以不用部署 Skipper 。两者都需要依赖关系型数据库( RDBMS ),默认会使用内置的 H2 ,支持的数据库有 H2 、 HSQLDB 、 MYSQL 、 Oracle 、 PostgreSql 、 DB2 和 SqlServer 。
2.4 运行环境
优秀的 Spring 的解耦能力总是特别强, Server 和应用可以运行在不同的平台。我们可以把 Data Flow Server 和 Skipper Server 部署在 Local 、 Cloud Foundry 和 Kuernetes ,而 Server 又可以把应用部署在不同的平台。
- 服务端Local:应用Local/Cloud Foundry/Kuernetes;
- 服务端Cloud Foundry:应用Cloud Foundry/Kuernetes;
- 服务端Kuernetes:应用Cloud Foundry/Kuernetes。
一般情况下,我们会把 Server 和应用部署在同一平台上。对于生产环境,建议还是在 Kuernetes 上比较合适。
3 本地模式安装使用
为了快速体验,我们使用最简单的本地运行环境。
3.1 下载Jar包
下载以下三个 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
如果是简单的 Batch 应用,可以只下载 spring-cloud-dataflow-server-2.5.3.RELEASE.jar 。
3.2 启动应用
# 启动Skipper,默认端口为7577 java -jar spring-cloud-skipper-server-2.4.3.RELEASE.jar # 启动Data Flow Server,默认端口为9393 java -jar spring-cloud-dataflow-server-2.5.3.RELEASE.jar
启动完成后,访问UI: http://localhost:9393/dashboard
3.3 部署应用
3.3.1 添加应用Applications
只有添加了应用,才能部署 Batch 和 Stream 。官方提供了示例 Applications ,我们直接使用就可以了:
添加成功后,在应用列表可以查看:
3.3.2 创建Task
创建 Task 可以图形化创建,也可以通过 DSL 来创建,非常方便:
定义好 Task 后,输入名字创建:
3.3.3 运行Task
直接点击运行:
可以传入参数:
3.3.4 查看Task运行情况
可以查看运行日志:
3.4 Data Flow Shell命令行
除了在网页上,还可以通过命令行模式来与 Server 进行交互。
启动应用:
$ 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 总结
本文使用的是官方提供的应用,我们可以自己开发应用并注册到 Server 上。 Local 模式适合开发环境适合,生产环境还是部署在 Kubernetes 比较靠谱。后面我们再来探索吧。
参考官方资料:
欢迎关注微信公众号< 南瓜慢说 >,将持续为你更新...
以上所述就是小编给大家介绍的《Spring Cloud Data Flow初体验,以Local模式运行》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 浅谈tomcat运行模式
- 如何在后台(脱离模式下)运行Docker容器
- Flink 集群运行原理兼部署及Yarn运行模式深入剖析-Flink牛刀小试
- Spark 系列(五)—— Spark 运行模式与作业提交
- GoPlus 0.6.40 发布,支持线上运行模式
- 记录Hadoop3.1.1 伪分布式运行模式
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Fortran 95/2003程序设计
中国电力出版社 / 2009-8 / 88.00元
Fortran是计算世界最早出现的高级程序设计语言之一,随着面向对象编程时代的到来,Fortran语言不仅保持了发展的步伐,而且继续在科学计算方面领先。《Fortran95/2003程序设计(第3版)》在第2~7章介绍了Fortan语言基础知识,为初学者提供入门学习资料;在第8~15章介绍了Fortran语言高级特性,为深入用好Fortran语言提供支持;在第16章讲述了Fortran语言面向对象......一起来看看 《Fortran 95/2003程序设计》 这本书的介绍吧!