先看一下官方给出的定义
Spring Cloud Data Flow is a toolkit for building data integration and real-time data processing pipelines.
Pipelines consist of Spring Boot apps, built using the Spring Cloud Stream or Spring Cloud Task microservice frameworks. This makes Spring Cloud Data Flow suitable for a range of data processing use cases, from import/export to event streaming and predictive analytics.
![](https://img.haomeiwen.com/i4287183/af021bfa78382872.png)
SCDF (Spring Cloud Data Flow)的核心功能是ETL (Extract, Transform, Load ),Extract,Transform,Load 分别对应上图的Source,Processor 和Sink,这三个组件是Spring Boot 微服务,部署运行在SCDF之上的,三个微服务放在一起构成一个Stream(pipeline)用来实现数据处理,它们之间通过AMQP进行异步的消息传递。
SCDF 使用了 Spring Cloud stream 模块。我们Stream创建和运行以 Spring Boot 应用为形式的消息传递微服务,以便它们可以部署在不同的平台上,独立运行并相互交互。在使用 Spring Cloud stream 模块创建数据管道时,SCDF 可以充当类似胶水的角色,旨在于提供一个管理服务模型,目的是用于精简数据项目的工程量,并让开发人员将精力集中在具体问题及对问题的分析上
![](https://img.haomeiwen.com/i4287183/62d4b569d6c39fb4.png)
如上图所示,开发人员可以通过编写JavaDSL或者用拖拽的方式完成一个Pipeline的定义,定义好的Pipeline(Stream)可以一键部署到SCDF Server,一个数据流处理的管道就运行起来了,开发人员只需要关注Extract, Transform, Load (Source,Processor,Sink)三个微服务的业务逻辑开发,因为它们都是基于Spring Boot的项目,所以开发起来也非常简单,可以说SCDF真的让我们只于去解决问题,其它的事情都可以交给SCDF解决。当然SCDF很多默认的微服务组件可以用,很多时候我们不需要开发了,只需要找到合适的application (微服务)用于组成我们想要的Stream就可以了。
![](https://img.haomeiwen.com/i4287183/a9f2ab35a80a50e8.png)
SCDF 由下面的Spring Cloud家族成员组成
![](https://img.haomeiwen.com/i4287183/9d182c0f425e8c44.png)
参考
https://www.javainuse.com/spring/cloud-data-flow
https://www.e4developer.com/2018/02/18/getting-started-with-spring-cloud-data-flow/
https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle
网友评论