
本文共 1399 字,大约阅读时间需要 4 分钟。
电商财务结算系统重构实践
背景
业务背景
唯品会作为全国第三大电商平台,连接全球几万家供应商,24小时 Spoon 为亿万会员提供优质产品服务。自营电商业务决定了平台需要为供应商提供高效、准确的仓储物流服务和财务服务。财务结算系统作为电商后端的核心功能,需要核算每个结算周期中供应商应结算的款项。面对复杂的结算类型和供应商个性化需求,以及日益增长的业务量/数据量,如何为供应商提供更快捷的结算服务,成为持续研究的课题。
技术背景
由于历史原因,唯品会的财务系统架构简单,使用整体化的Oracle E-Business Suite(EBS)。近年来,由于业务扩展,原有系统的性能已无法承受压力。近两年,陆续将采购、建档、商品等模块迁移至自建系统,减轻了EBS负担。近一年供应商数量和SKU数量大幅增加,基于EBS的财务系统的存储、计算性能已临近极限。EBS底层基于Oracle数据库,运维成本和运行效率问题日益突出。
在此背景下,2016年推出FCS 2.0项目,将财务系统中的库存、结算、应收、应付等核心模块迁移到自研的财务协同系统FCS中。供应商结算作为FCS中运算数据量最大、规则最复杂的模块,决定采用SPARK基础构建供应商结算平台(VSP)。
设计目标
在系统设计中,我们追求更快、更准、更灵活的目标:
架构设计
为什么选择SPARK?
在技术选型前,团队考虑以下因素:
通过比较典型场景(跨库查询和分库匹配查询),得出以下结论:
- SPARK SQL开发效率高,适合处理复杂的Join逻辑,符合PLSQL开发习惯。
- SPARK自带的分区存储/读取技术提升了对MySQL数据源的处理效率。
- SPARK资源管理基于进程级,YARN方式具有良好的稳定性和可扩展性。
整体架构
VSP平台核心采用SPARK计算引擎,支持连接MySQL、Oracle、HBASE、Redis等多种数据源,以及唯品会自研的OSP服务框架。
SPARK集群使用YARN模式,有以下优势:
开发实践
业务流程抽象
将结算流程分为三个阶段:数据抽取、预处理、结算,每个阶段为独立任务集,通过任务编排系统避免资源浪费。具体流程如下:
系统设计抽象
建立基于SPARK的应用开发框架,实现特性:
1.提供标准化开发实践,降低开发门槛,类似传统Java项目便捷性。 2.框架负责作业启停、配置、参数优化等管理,减少开发者误操作。 3.封装底层资源访问,提升代码重用率。
相关文章
...
发表评论
最新留言
关于作者
