Spring Cloud Data Flow简介

文章目录

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和异步微服务进行无服务器计算

### 回答1: Spring Cloud Data Flow 是一个用于管理和执行数据处理管道的开源平台。它基于 Spring CloudSpring Boot 构建,允许开发人员使用简单的语法组合多个组件(称为“Streams”)来构建复杂的数据处理流程。 ### 回答2: Spring Cloud Data Flow(SCDF)是一种用于开发和部署大规模数据处理和流式数据应用程序的开源框架。它是基于Spring CloudSpring Boot构建的,提供了一套完整的工具和组件,帮助开发人员简化数据集成、数据处理和数据分析的过程。 SCDF提供了一个可视化的用户界面,使开发人员能够轻松地创建、组装和部署数据流。用户可以通过简单的拖拽和连接来定义数据流,并配置各个组件的参数。SCDF支持各种各样的组件,包括源(Source)、处理器(Processor)和目标(Sink),用户可以根据自己的需求选择合适的组件来构建数据流。 SCDF还提供了一套丰富的功能,帮助开发人员管理和监控数据流。开发人员可以通过用户界面查看数据流的状态、指标和日志,以便及时发现和解决问题。此外,SCDF还支持水平扩展和容错处理,确保数据流的高可用性和可靠性。 除了数据流之外,SCDF还支持任务(Task)的开发和部署。任务是一组有序的步骤,可以在SCDF中定义和执行。开发人员可以通过任务来实现一次性的数据处理需求,例如定时调度、数据迁移等。 总而言之,Spring Cloud Data Flow是一个非常有用的框架,可以帮助开发人员简化大规模数据处理和流式数据应用程序的开发和部署。它提供了简单易用的用户界面和丰富的功能,使开发人员能够更高效地开发和管理数据流和任务。 ### 回答3: Spring Cloud Data Flow是一个用于构建和管理数据流应用程序的框架。它提供了一种简单且灵活的方式,用于在分布式系统中定义、部署和监控数据处理流程。 Spring Cloud Data Flow建立在Spring CloudSpring Boot的基础上,利用这些开源框架提供的丰富功能和生态系统。它提供了一组用于构建数据流应用程序的工具和功能,包括实时流处理、批处理和任务执行等。 Spring Cloud Data Flow使用了一种基于Spring Cloud Stream的声明式编程模型,允许开发人员通过简单地定义数据流来构建应用程序。数据流由一系列的可重用的处理模块组成,这些模块被称为Spring Cloud Stream应用。这些应用可以通过消息传递进行通信,形成一个完整的、高效的数据处理流程。 通过Spring Cloud Data Flow,可以轻松地创建、配置和管理多个应用程序实例的部署。它提供了一个易于使用的面板,用于监控和管理数据流应用程序的运行状况。还可以根据需要对数据流进行动态的扩展和缩减,以满足不同的处理需求。 总之,Spring Cloud Data Flow是一个强大的工具,它简化了构建和管理数据流应用程序的过程。通过它,开发人员可以更加高效地开发和部署数据处理流程,提高系统的灵活性和可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值