关于我们 ABOUT 诚以载道,以信立本,合作共赢

当前位置: 首页 > 关于我们 > 行业动态

大咖博闻荟,使用Spring Cloud Data Flow 来实现数据流处理

日期:2020-07-11 13:04:56 / 人气:

随着云原生、微服务应用等的概念的逐渐深入人心,很多企业用户都已经在使用Spring Boot和Spring Cloud等流行的开源技术框架来开发Java微服务,实现很多在线事务处理(OLTP)类的业务应用。

那么,对于数据密集型(Data Intensive)的应用,比如定期执行的批处理(Batch Processing)或持续的实时数据流处理(Stream Processing),Spring社区是否也有对应的开源项目可以方便大家日常的工作呢?

确实有这样的一个框架,那就是Spring Cloud Data Flow(SCDF),相对于大名鼎鼎的Spring Boot和Spring Cloud,在国内大家可能还不太熟悉SCDF,今天我们就给大家介绍一下。

SCDF目前(截止2020/6)的最新版为2.5,官网地址为: https://dataflow.spring.io/

大咖博闻荟,使用Spring Cloud Data Flow 来实现数据流处理(图1)

SCDF中的数据微服务应用仍然是Spring Boot应用,通过Spring Cloud Stream抽象了流处理/消息机制,Spring Cloud Task抽象了批处理任务,让开发人员专注于业务逻辑的开发,而不用关心太多底层的细节。

大咖博闻荟,使用Spring Cloud Data Flow 来实现数据流处理(图2)

SCDF的主要运行组件包括Data Flow Server和Skipper Server。运行数据可以保存在主流关系数据库如MySQL, PostgreSQL, Oracle, DB2, SQLServer等,流处理模式还需要依赖RabbitMQ或Kafka。 

SCDF像Spring Boot一样,可以直接用Java命令运行起来,也可以以容器的方式运行在Kubernetes集群或Cloud Foundry平台(Tanzu Application Service)上。Spring Cloud Skipper Server负责对接运行平台,并安装、部署、伸缩、升级或回滚SCDF应用。 
SCDF提供可视化界面Dashboard便于进行日常管理,如注册应用,编排数据流,执行数据流,查看执行结果和历史等。当然也可以利用API或DSL CLI的方式进行交互。

大咖博闻荟,使用Spring Cloud Data Flow 来实现数据流处理(图3)

大家可能遇到这样的一些业务场景:


  • 关系数据库中的“热”数据需要缓存一份以提升读取性能,在数据更新后还能保持缓存数据的持续更新。


  • 采用内存数据网格如GemFire处理大规模的数据更新,以避免关系数据库成为性能瓶颈,但GemFire中的数据需要及时写回关系数据库,以保证数据的持续更新。


  • 当A微服务完成某个业务操作后,不是采用紧耦合的API调用B服务,而是发送消息,所有订阅这个事件消息的服务都可以收到通知,继续后续的处理,形成消息流转的路径。


  • IoT传感器不断上传最新的数据,流数据处理平台需要计算移动时间窗口内的计数或统计,发现异常模式后,发出通知告警。


  • 每天凌晨1:00利用CDC (变化数据获取机制)将当天业务数据导出生成CSV文件,上传到文件服务器;下游系统在2:00从文件服务器下载文件,解析后导入到自己的数据库。


  • 给数据打标签后,提供给机器学习模型以供训练。

    …… 

可以发现,数据处理大致都包括如下的基本步骤:

大咖博闻荟,使用Spring Cloud Data Flow 来实现数据流处理(图4)

  • Source: 从数据源读取解析数据,可以是文件,数据库,NoSQL数据库,消息等

  • Process: 对数据进行处理加工,如校验,去重,格式转换,数据增强/丰富化等

  • Sink: 保存处理完的数据,或发送处理完毕的事件消息,或调用第三方系统API等

 
SCDF的口号是“连接一切”,有超过60个现成的组件以供数据集成,大致包括如下类别:

  • 文件: File, FTP/SFTP, log, syslog, S3, hdfs

  • 数据库: JDBC/SQL, cdc-debezium, pg-copy (Greenplum)

  • NoSQL: 文档数据库MongoDB,内存数据网格GemFire,缓存Redis,KV数据库Cassandra

  • 消息中间件:JMS, RabbitMQ, MQTT, Kafka, ……

  • 通信协议:HTTP, TCP, WebSocket, grpc, mail

  • 时间: time, trigger

  • 统计:计数,过滤,分支,合并,转换

  • 机器学习:TensorFlow, PMML, 图片识别

大咖博闻荟,使用Spring Cloud Data Flow 来实现数据流处理(图5)

SCDF同时支持批处理和流处理这两种最常见的数据处理模式。

 
批处理

基于Spring Cloud Task实现批处理任务,由Spring Cloud Scheduler基于cron时间设置触发执行(也可手工触发执行)。在任务处理结果和状态保存到数据库后,任务会结束运行。采用Spring Batch编程模型(Job/Step)可以处理批处理常见场景如任务执行中间出错后从断点继续运行,事务管理,以及任务执行进度、统计等。
大咖博闻荟,使用Spring Cloud Data Flow 来实现数据流处理(图6)
大咖博闻荟,使用Spring Cloud Data Flow 来实现数据流处理(图7)
大咖博闻荟,使用Spring Cloud Data Flow 来实现数据流处理(图8)
大咖博闻荟,使用Spring Cloud Data Flow 来实现数据流处理(图9)
大咖博闻荟,使用Spring Cloud Data Flow 来实现数据流处理(图10)
大咖博闻荟,使用Spring Cloud Data Flow 来实现数据流处理(图11)



声明:

1、江苏欧迈科技有限公司所提供产品全部为原厂正规产品,我司不出售翻新机,二手机,等残次品;硬件保修政策及时长按设备原制造厂执行,支持三包规定。

2、价格:官网上列出的价格为含增值税专用发票价格;硬件设备产品含税13%,工程服务含税9%,技术服务含税6%。

3、服务:网站标明的价格为商品本身含税价格,不含其它设定和安装服务;如需要安装设定服务请联系销售人员另行报价。无价格的商品为按需配置的项目商品,需联络销售人员报价。

4、方案:官网所述之方案非完整方案,且并不适用于所有的应用场景,请勿盲目套用。

5、新闻:大多摘自互联网,如有侵权,请与我们联系。

6、运费:苏州,无锡,南通,常州,泰州,镇江,扬州地区免费送货上门,其它地区快递发货。

7、结算:苏州,无锡,南通,常州,泰州,镇江,扬州地区支持账期和月结的结算方式,具体可与销售人员协商。其它地区均为现金结算。

8、其它:服务申明最终解释权归欧迈科技所有,其它未尽事项请与我们联系。


加载中~