批处理之spring-batch预研篇

批处理是企业级业务系统不可或缺的一部分,spring batch是一个轻量级的综合性批处理框架,可用于开发企业信息系统中那些至关重要的数据批量处理业务。

目录

背景

思路

组件图

部分时序图

技术选型


背景

随着微服务化的系统越来越多,平台中有些耗时大批量的操作,比如:导入导出等问题暴露的越来越严重。老版本的解决方案(异步排队):这些功能和系统集成在一起,通过类似请求漏斗原理(线性排队执行),UI上有个结果页面(自动刷新)获取最终执行结果。

 

业务反馈:tms、oms有各自的导入导出“执行结果”,体验不好

系统设计上:

Ø  性能特别差,尽管采用定时任务排队执行解决,但时不时宕机;

Ø  系统资源浪费,并发一高时排队时间较长;

Ø  需要针对这些请求配置nginx转发,增加了运维复杂度;

Ø  对于大批量生成汇总类需求无力响应(需转发至报表,但有时候不是所有业务数据都希望被报表抽取);

Ø  微服务后,特别是DB拆分后不得不采用原来方案(集成,配置繁琐),上述问题更突出;

思路

 

独立出一个新系统(批处理服务引擎),进行数据的集中化管理,那它可以做什么?

Ø  性能好,支持一定数据的并发

Ø  能够对大批量数据进行抽取,分析处理,输出(目前定位在导入导出)

Ø  可以管理多个数据源,同时支持不同数据源之间的同步(随着微服务越来越多这个不可少,接口毕竟解决不了这些问题)

Ø  集中化需考虑业务侵入性,原来应用的逻辑需迁移到新系统,需维护两处逻辑?需求是否多变?此处很关键

最终考虑使用spring-batch。

组件图

最终妥协下来选择了方案2,但未来要向方案1的方向孵化。

模块依赖描述

部分时序图

技术选型

*    spring-boot    1.5.4.RELEASE
*    mybatis-spring-boot    1.3.0
*    poi、poi-ooxml    3.15

最后,如需更深入的了解可以看下篇《spring-batch实践篇

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值