关于我们 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/

1-200G1130536194.png

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

1-200G1130556353.png

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的方式进行交互。

1-200G1130626331.png

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


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


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


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


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


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


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

    …… 

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

1-200G1130AE57.png

  • 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, 图片识别

1-200G1130HM45.png

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

 
批处理

基于Spring Cloud Task实现批处理任务,由Spring Cloud Scheduler基于cron时间设置触发执行(也可手工触发执行)。在任务处理结果和状态保存到数据库后,任务会结束运行。采用Spring Batch编程模型(Job/Step)可以处理批处理常见场景如任务执行中间出错后从断点继续运行,事务管理,以及任务执行进度、统计等。
1-200G1130KJ58.png
1-200G1130Q53S.png
1-200G1130RD17.png
1-200G1130T2258.png
1-200G1130UX44.png
1-200G1130921262.png



声明:

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

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

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

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

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

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

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

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


加载中~